簡體   English   中英

增加數字的vim列

[英]vim column of increasing numbers

通常我處理看起來像這樣的文件:

0.98   3.45
2.45   3.90
.
.
.
4.56   8.45

讓我們說 100 行。 我想得到這樣的東西:

1   0.98   3.45
2   2.45   3.90
.
.
.
100 4.56   8.45

第一列整數。 我通常做的是生成一個只有數字 1,2...100 的列文件,然后選擇該塊並將其粘貼到包含兩列的文件中。 由於行數幾乎總是不同,我的方法似乎很慢。

你有什么建議嗎?

謝謝。

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

更多信息:

:help :s\= 
:help printf()
:help line()
:%!cat -n

是一個快速解決方案。 其次是

:%s/^\s*//g

它可以很快地為您提供您想要的東西。

我發現VisIncr對於類似的操作非常寶貴(這里是使用Vundle或NeoBundle 的GitHub版本 )。 該插件“有助於創建一個增加或減少數字,日期或日期名稱的列”。 添加行號的示例如下:

以可視塊模式選擇文件的第一列:

gg<C-v>G

插入一個起始編號(本例中為1)和一個列分隔符(我假設Tab在這里):

I1<Tab><Esc>

重新選擇文件的第一列:

gv

運行VisIncr命令以增加數字:

:I<CR>

您可以使用不同的命令右對齊數字:

:II<CR>

增加日期,字母,十六進制和羅馬數字同樣容易。

為了生成一個序列號列, nl是你的朋友。 假設您要生成從1n

  1. 在vim中創建一個包含n行的文件。

  2. 運行:%!nl

現在,您可以使用<Cv>選擇數字列並將其復制到其他位置。

這是另一種僅 vim 的普通模式版本。 將光標放在第一列的第一行:

<C-v>GI0 <ESC>gvg<C-a>
  • <Cv>可視塊模式 ( :help visual-block )
  • G選擇到屏幕底部( :help G
  • I在第 1 行開始插入模式( :help v_b_I
  • 0輸入文字零和文字空格
  • <ESC>回到普通模式
  • gv重新選擇最后一個視覺選擇(第 1 列的所有內容)( :help gv
  • g<Ca>依次遞增選擇中的所有數字( :help v_g_CTRL-A

變成這個

0.98   3.45
2.45   3.90
4.56   8.45

進入這個

1 0.98   3.45
2 2.45   3.90
3 4.56   8.45

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM