一般 Vim 使用 :set number 命令,在編輯器顯示行号。
本文展示了如何将行号插入到正文中,或者隻插入到段落中。此外,還提供了打印行号的選項(Vim 可以打印帶有數字的行,并且不需要文件有數字)。
可以使用 :s 命令在每行之前插入行号:
:%s/^/\=printf('%-4d', line('.'))
模式 ^ 匹配每一行的開頭,\= 表達式使用 printf() 來格式化當前行的數字:
要給一部分内容編号,請指定哪些行要使用編号。例如,按 v 選擇第一行,然後按 j 向下擴展選擇,直到選中所有需要的行。然後輸入以下命令(不要輸入'<,'>,這是 Vim 自動插入的):
:'<,'>s/^/\=printf("%d.\t", line(".") - line("'<") 1)
上面的示例的格式字符串是“%d”。它插入一個左對齊的數字,後跟一個句點,和一個制表符TAB。選定範圍内的每一行都進行了編号。
如果您隻想給非空行編号(它會找到一行的開頭,後面跟着一個不是空格的字符),請使用以下代碼:
:'<,'>s/^\S/\=printf("%d.\t", line(".") - line("'<") 1)
在上面的代碼中,空白行被計數,但是沒有插入數字(如果第4行是空的,那麼插入的數字将是1、2、3、5、6)。
下面的替代方法不會給空行編号,也不會跳過行号:
:'<,'>g/^\S/s/^/\=printf("%d.\t", Inc())
以上代碼需要這裡的 Inc() 函數。此外,在選擇任何行之前,需要設置第一個行号的值。輸入以下内容:
:let i = 1
在基于Unix的系統中,number lines 工具可以通過過濾整個緩沖區來插入數字:
:%!nl -ba
nl 指令有許多選項來控制對哪些行進行編号,以及如何對數字進行格式化。
要給一部分内容添加行号,請指定哪些行應該用範圍編号。
例如,按 v 選擇第一行,然後按 j 向下擴展選擇,直到選中所有需要的行。然後鍵入以下内容。注:'<,'> 是由 Vim 插入的。
:'<,'>!nl -ba
在使用 nl 程序時,默認情況下最多會添加 6 個前導空格,數字與行内容之間用一個制表符分隔。将前導空格減少到 2 (最多可達 99 個),并将分隔符替換為“.”,你可以使用以下标識符:
:'<,'>!nl -s '. ' -w 2
如果隻需要在打印輸出中對行進行編号,則不需要插入行号。使用以下命令告訴 Vim 在打印時插入行号(将 y 更改為 n 就是關閉此功能):
:set printoptions=number:y
把Perl天書寫在最後,收好不謝,功能都是一樣的!
" 創建一個菜單選項,用于在文件内調用 Perl 。
" 在按下回車鍵之前,剪輯腳本的 -e 選項。
" 下面這行東東,在shell下一樣用。
:amenu Mo1.Format.NumberLines<Tab>:!perl :1,$!perl -ne \"printf(\\"\=:\%s\\",\$.,\$_);\"
Happy coding :-)
我是 @程序員小助手 ,持續分享編程知識,歡迎關注。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!