从vim打印到Postscript

时间:2010-03-31 08:45:00

标签: vim encoding printing postscript

我有从Vim打印到postscript的问题。

我使用utf-8编码和'ščřž'这样的捷克字符,但在输出中我得到了上升的问号,而不是正确的字符。

vim --version

VIM - Vi IMproved 7.2

+的iconv 加入+ multi_byte +后记

打印机设置:

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

printer font:courier

3 个答案:

答案 0 :(得分:1)

Rkulla,这是错的。至于你的信息,我明白如果我们不设置 '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)。 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)

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

:TOhtml | w | !open -a Safari %

例如,我在vim中有这个: enter image description here

如果我输入

:ha

我明白了: enter image description here

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

enter image description here

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

nnoremap <F2> <ESC> :TOhtml <bar> w <bar> !open -a Safari % <CR> <bar> ZQ <CR> <bar> execute '!rm %:p.html' <CR>