我对vim完全陌生,我知道vim可以做些什么神奇的事情。我的要求是在每一行的末尾添加一系列数字,我看到有人在我面前做过这样的事情。只是我没有足够的时间来搜索正确的命令,所以我认为在这里发布一个问题应该是一个更快的方法,因为我已经没时间了。对不起是一个菜鸟,但似乎这是我能想到的唯一方法。
所以示例文件内容就像
1 Afghanistan
2 Albania
3 Algeria
4 American
5 Andorra
6 Angola
7 Anguilla
8 Antarctica
国家/地区列表,假设它是一个数据库表,每个列都使用制表符分隔。我已经想出了一种方法将tab附加到每一行的末尾,但现在问题是在每行的末尾添加一个数字,每行的数字与其id完全相同(第一个数字) )
我认为它应该用视觉模式完成,但如果你知道,请告诉我一个有效的解决方案。任何帮助都非常感谢。
最诚挚的问候, 海浪
答案 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
说明:
:
:start the command %
:on all lines s
:subsititute !
:模式开始^
:行首\(
:start of group \d
:数字\+
:one or more \)
:小组结尾.
:any character *
:any number of those !
:模式结束&
:替换为 - whole pattern \t
:标签\1
:第一个匹配的小组答案 2 :(得分:0)
你可以使用由q后跟一个字母启用的录音,这是该录音的书签。
E.g。 在正常模式下,转到第一行并键入:
qe
^
y<space>
$
p
q (to end the recording)
现在输入@e
来播放来自字母e或20@e
的录音,重复@e 20次。
你可以玩这样的录音。也许还会在正常模式下记录j
,因此它会带您到下一行。