打印到屏幕
命令: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中文打印配置