tft每日頭條

 > 生活

 > 沒有行号不得勁

沒有行号不得勁

生活 更新时间:2024-11-29 10:36:13

引言

一般 Vim 使用 :set number 命令,在編輯器顯示行号。

本文展示了如何将行号插入到正文中,或者隻插入到段落中。此外,還提供了打印行号的選項(Vim 可以打印帶有數字的行,并且不需要文件有數字)。

沒有行号不得勁(沒有行号不得勁)1

Vim

可以使用 :s 命令在每行之前插入行号:

:%s/^/\=printf('%-4d', line('.'))

模式 ^ 匹配每一行的開頭,\= 表達式使用 printf() 來格式化當前行的數字:

  • %-4d 是一個左對齊的整數,
  • 如果需要,可以通過在4列的寬度中添加空格來填充,
  • M 是右對齊的,d 插入前導零

要給一部分内容編号,請指定哪些行要使用編号。例如,按 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

nl 指令

在基于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每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved