我有从Vim打印到postscript的问题。
我使用utf-8编码和'ščřž'这样的捷克字符,但在输出中我得到了上升的问号,而不是正确的字符。
vim --version
VIM - Vi IMproved 7.2
+的iconv 加入+ multi_byte +后记
打印机设置:
set printoptions = paper:A4,duplex:off,collate:n,syntax:n
printer font:courier
答案 0 :(得分:1)
我在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)。 delete(v:fname_in)+ v:shell_error。 我不知道如何解决这个问题。我读到了一般的Unix / Linux问题。 但你应该尝试使用a2ps,enscript或类似的方法重写printexpr。
答案 1 :(得分:0)
确保您的打印机支持打印unicode字符。尝试更新您的驱动程序并进入设置并打开truetype字体进行打印或类似选项。据我所知,Courier使用ASCII。
键入:h printencoding出现了:
如果'printencoding'为空或VIM找不到该文件,那么它将使用 'encoding'(如果用| + multi_byte |编译VIM,则设置为8位 编码)找到打印字符编码文件。如果VIM无法找到 一个字符编码文件然后它将使用“latin1”打印字符 编码文件。 当'encoding'设置为多字节编码时,VIM将尝试转换 用于打印的打印编码的字符(如果'printencoding'为空 那么转换将是latin1)。转换为打印编码 除了latin1之外,还需要使用| + iconv |编译VIM特征。 如果无法进行转换,则打印将失败。任何字符 无法转换将被替换为颠倒的问号。 提供四个打印字符编码文件,以支持默认的Mac,VMS, HPUX和EBCDIC字符编码,默认情况下用于这些编码 平台。默认情况下,使用代码页1252打印字符编码 Windows和OS / 2平台。
答案 2 :(得分:0)