6

我在从 Vim 打印到 postscript 时遇到问题。

我正在使用带有捷克字符(如“ščřž”)的 utf-8 编码,但在输出中我得到了向上的问号而不是正确的字符。

vim --版本

VIM - Vi 改进版 7.2

+iconv +multi_byte +postscript

打印机设置:

设置 printoptions=paper:A4,duplex:off,collat​​e:n,syntax:n

打印机字体:快递

4

3 回答 3

1

鲁库拉,这是错误的。关于您的消息,我知道如果我们不设置 'printencoding',vim 会将我们的消息(utf-8)转换为 'latin1',因此我们会遇到问题。我认为那不是真的。

我在 vim中使用 printencoding=utf-8 通过 :hardcopy打印了文件(带有西里尔符号) 我也得到了反向问号而不是正确的符号。我的设置:1) printfont = utf-8 2) encoding = utf-8 3) fileencoding = utf-8。 我认为 PostScript 有问题。如果您尝试通过 lp/lpr 在控制台/终端(不是 GUI)中打印某些内容(例如使用西里尔符号),您将得到不正确的符号(在西里尔字母的位置)。这是终端中从非 ASCII 文本到 PostScript 的转换问题。Vim 使用printexpr并且有默认值: printexpr=system(' lpr' . (&printdevice == '' ? '' : '-P' . &printdevice) 。' ' 。v:fname_in) 。删除(v:fname_in)+ v:shell_error。我不知道如何解决这个问题。我读到这是一般的 Unix/Linux 问题。 但是你应该尝试重写 printexpr 以使用 a2ps、enscript 或类似的。

于 2010-06-28T15:11:34.287 回答
1

通过转换为 HTML 将缓冲区发送到浏览器,然后从那里打印:

:TOhtml | w | !open -a Safari %

例如,我在 vim 中有这个: 在此处输入图像描述

如果我输入

:ha

我明白了: 在此处输入图像描述

但是当我将它发送到浏览器时,我得到了这个(带有配色方案!):

在此处输入图像描述

我的 .vimrc 中有这个,它会删除新的 html 缓冲区和存储的文件:

nnoremap <F2> <ESC> :TOhtml <bar> w <bar> !open -a Safari % <CR> <bar> ZQ <CR> <bar> execute '!rm %:p.html' <CR>
于 2018-08-28T18:10:02.493 回答
0

确保您的打印机支持打印 Unicode 字符。尝试更新您的驱动程序并进入设置并打开用于打印的 truetype 字体或类似选项。据我所知,Courier 使用 ASCII。

键入 :h printencoding 出现:

如果'printencoding' 为空或VIM 找不到文件,那么它将使用'encoding'(如果VIM 使用|+multi_byte| 编译并且设置为8 位编码)来查找打印字符编码文件。如果 VIM 无法找到字符编码文件,那么它将使用 "latin1" 打印字符编码文件。当 'encoding' 设置为多字节编码时,VIM 会尝试将字符转换为打印编码进行打印(如果 'printencoding' 为空则转换为 latin1)。转换为 latin1 以外的打印编码需要使用 |+iconv| 编译 VIM 特征。如果无法进行转换,则打印将失败。任何无法转换的字符都将替换为倒置的问号。提供了四个打印字符编码文件来支持默认的 Mac、VMS、HPUX 和 EBCDIC 字符编码,并在这些平台上默认使用。默认情况下,在 Windows 和 OS/2 平台上使用代码页 1252 打印字符编码。

于 2010-04-03T19:35:06.100 回答