VIM在每行的末尾附加一个数字序列

时间:2011-06-01 09:21:20

标签: vim append

我对vim完全陌生,我知道vim可以做些什么神奇的事情。我的要求是在每一行的末尾添加一系列数字,我看到有人在我面前做过这样的事情。只是我没有足够的时间来搜索正确的命令,所以我认为在这里发布一个问题应该是一个更快的方法,因为我已经没时间了。对不起是一个菜鸟,但似乎这是我能想到的唯一方法。

所以示例文件内容就像

1       Afghanistan     
2       Albania 
3       Algeria 
4       American        
5       Andorra 
6       Angola  
7       Anguilla        
8       Antarctica

国家/地区列表,假设它是一个数据库表,每个列都使用制表符分隔。我已经想出了一种方法将tab附加到每一行的末尾,但现在问题是在每行的末尾添加一个数字,每行的数字与其id完全相同(第一个数字) )

我认为它应该用视觉模式完成,但如果你知道,请告诉我一个有效的解决方案。任何帮助都非常感谢。

最诚挚的问候, 海浪

3 个答案:

答案 0 :(得分:9)

在vim中打开您的文件。如果不处于退出模式,请按ESC。

写下这个:%s/$/\=line('.')/

这将在每行的末尾附加数字序列。要在开始时添加数字

:%s/^/\=line('.')/

答案 1 :(得分:5)

输入:

1       Afghanistan     
2       Albania 
3       Algeria 
4       American        
5       Andorra 
6       Angola  
7       Anguilla        
8       Antarctica

击键:

:%s!^\(\d\+\).*!&\t\1<CR>

输出:

1       Afghanistan         1
2       Albania     2
3       Algeria     3
4       American            4
5       Andorra     5
6       Angola      6
7       Anguilla            7
8       Antarctica  8

Par:20

说明:

答案 2 :(得分:0)

你可以使用由q后跟一个字母启用的录音,这是该录音的书签。

E.g。 在正常模式下,转到第一行并键入:

qe
^
y<space>
$
p
q (to end the recording)

现在输入@e来播放来自字母e或20@e的录音,重复@e 20次。 你可以玩这样的录音。也许还会在正常模式下记录j,因此它会带您到下一行。