我对vim是全新的,我知道vim可以做些什么神奇的事情.我的要求是在每一行的末尾添加一系列数字,我看到有人在我面前做过这样的事情.只是我没有足够的时间来搜索正确的命令,所以我认为在这里发布一个问题应该是一个更快的方法,因为我已经没时间了.对不起是一个菜鸟,但似乎这是我能想到的唯一方法.
所以示例文件内容就像
1 Afghanistan
2 Albania
3 Algeria
4 American
5 Andorra
6 Angola
7 Anguilla
8 Antarctica
Run Code Online (Sandbox Code Playgroud)
国家列表,假设它是一个数据库表,每个列都用制表符分隔.我已经想出了一种方法将tab附加到每一行的末尾,但现在问题是在每行的末尾添加一个数字,每行的数字与其id完全相同(第一个数字) )
我不知何故认为它应该用视觉模式完成,但如果你知道,请告诉我一个有效的解决方案.任何帮助都非常感谢.
最诚挚的问候,海浪
在vim中打开您的文件.如果不处于退出模式,请按ESC.
写这个 :%s/$/\=line('.')/
这将在每行的末尾附加数字序列.在开头添加数字
:%s/^/\=line('.')/
输入:
1 Afghanistan
2 Albania
3 Algeria
4 American
5 Andorra
6 Angola
7 Anguilla
8 Antarctica
Run Code Online (Sandbox Code Playgroud)
快捷键:
:%s!^\(\d\+\).*!&\t\1<CR>
Run Code Online (Sandbox Code Playgroud)
输出:
1 Afghanistan 1
2 Albania 2
3 Algeria 3
4 American 4
5 Andorra 5
6 Angola 6
7 Anguilla 7
8 Antarctica 8
Run Code Online (Sandbox Code Playgroud)
标准杆:20
说明:
::启动命令%:在所有线路上s:替补! :模式的开始^ :开始行\(:小组的开始\d : 数字\+:一个或多个\) :小组结束.:任何角色*:任何数量的那些! :模式结束&:替换为 - 整个模式\t :一个标签\1 :第一个匹配组