打印到屏幕
命令:print(简写为:p)可以显示出选定的行。如果没有指定参数,仅是打印当前行。打印完成以后,回到打印行的开头。
我们可以指定要打印的行的范围。例如以下命令,将打印1到5行。
:1,5 print
如果仅仅想打印第5行,可以使用以下命令:
:5 print
如果想要打印整个文件,可以使用以下命令:
我们还可以选择显示包含指定内容的行。例如使用以下命令,可以打印出含有“ex”的行,并会高亮显示“ex”。
:/ex/ print
我们可以组合使用标记命令m与print命令。例如:在一个地方用命令ma做上标记;然后在其他的地方用命令mb也打上标记;最后用以下命令打印这两个标记之间的内容:
:'a,'b print
命令:number和:#不仅可以显示选定范围的内容,同时还会其行号。
命令:list也可以列出指定的行,而且能够显示出回车,Tab等不可见的字符。
打印到打印机
使用:hardcopy命令,将调出打印对话框,并将文本按照显示在Vim中的原样输出到打印机上。
使用:hardcopy!命令,则不会调出打印对话框,而是直接将文本输出到默认打印机上。
如果想要打印指定范围的行,可以使用以下命令:
:1,100 hardcopy
我们也可以进入可视化模式,然后选择指定的范围进行打印:
v100j:hardcopy
其中,命令v进入可视模式,100j向下移动100行,这些行将被高亮显示。然后用:hardcopy命令,打印出选中的行。
我们也可以使用命令V进入可视化模式,并选定一段内容,这时输入:就会在Vim的底部显示<,>两个字符,这两个字符分别指选定内容的开头和结束部分。然后就可以用:hardcopy命,令打印出选择的部分了。
打印选项
利用以下命令,设置printoptions选项,可以控制Vim的打印效果。
set printoptions=paper:A4,syntax:y,wrap:y
paper选项,用于选择纸张。可以设置为A3、A4、letter和legal。
syntax选项,确定是否按照语法高亮度打印文件。默认值“a”,意味着仅在使用彩色打印机时,打印语法高亮度;你也可以将值设为“y” ,强制打印语法高亮度。
wrap选项,确定是否折行打印。默认值“:y”,意味着自动折行;如果你将值设为“n”,那么过长的行在打印时将被截断。
header选项,设为“0”时,将取消打印页眉。
number选项,设为“y”时,将会打印行号。
关于printoptions的更多选项,请使用:help popt命令,查看帮助信息。
1. 概述
本节文字可以参考vim帮助文档":hlep print,"在 MS-Windows 上 Vim 可以在任何打
印机上打印你的文本. 在别的系统上, 它产生一个 PostScript文件, 该文件能直接发送
到 PostScript 打印机上, 必须借助ghostscript程序才能正确打印. 打印的命令是:
:[range]ha [> filename]
打印过程中显示完成的页号和百分比. 要中断打印, 按中断键 (CTRL-C 或者在 MS-系统
里. CTRL-Break).
'printfont' 和 'printoptions' 选项控制打印输出. 'printheader' 指定页眉的格式.
打印文件根据指定的边界 (margin) 排版, 这不受当前窗口的 'wrap' 或 'linebreak'
设置影响. 'printoptions' 里的 "wrap" 项可以用来关闭回绕.
打印的文本使用当前的高亮色彩, 但有以下考虑:
1)正常的背景色总是白色 (白纸的颜色).
2)白色文本和缺省前景总是黑色, 这样你才能看得出来!
3)如果 'background' 是 "dark", 则颜色会加深, 否则在白纸上它们因太亮而无法清晰
辨别.
2. Windows下的打印
这个基本上比较简单, 直接选择打印就可以打出比较好看的文档了.
3. Linux下的打印
关于vim的打印最全的文档基本上要数vim自带的帮助文档了, ":help print"可以查看详细
的帮助. 需要说一点的就是如果要打印中文字符, 需要vim和ghostscript的配合使用, 如
下面配置文件里的printmbfont的值(STSong-Light), 就是ghostscript里可以使用的中
文字体名(关于ghostscript的使用请参考我另一篇文章: "ghostscript中文打印经验").
=====================================================================
"打印机使用"iP1880-series", 不配置表示使用系统默认打印机.
"set printdevice=iP1880-series
"打印编码使用"utf-8", 不配置的话使用encoding的值.
set printencoding=utf-8
"打印所用的宽字符集为ISO10646, 这个和printencoding值要匹配
set printmbcharset=ISO10646
"打印所用字体, 在linux下, 要用ghostscript里已有的字体, 不然会打印乱码.
set printmbfont=r:STSong-Light,c:yes "MSungGBK-Light
"打印可选项, formfeed: 是否处理换页符, header: 页眉大小, paper: 用何种纸,
duplex: 是否双面打印, syntax: 是否支持语法高
set printoptions=formfeed:y,header:5,paper:A4,duplex:on,syntax:y
"打印时页眉的格式
"set printheader=%<%f%h%m%=Page\ %N
=====================================================================
figure 1: vim中文打印配置