问题描述
|
我对vim完全陌生,我知道vim可以做什么神奇的事情。我的要求是在每行的末尾附加一个数字序列,然后我看到有人在我前面这样做。只是我没有足够的时间来搜索正确的命令,所以我认为在这里发一个问题应该是一种更快的方法,因为我已经没有时间了。很抱歉成为菜鸟,但看来这是我能想到的唯一方法。
所以样本文件的内容就像
1 Afghanistan
2 Albania
3 Algeria
4 American
5 Andorra
6 Angola
7 Anguilla
8 Antarctica
国家列表,假设它是一个数据库表,每一列都用制表符分隔。我已经想出了一种在每个行的末尾添加制表符的方法,但是现在的问题是在每行的末尾也添加一个数字,并且每行的数字与其id完全相同(第一个数字)
我以某种方式认为应该在可视模式下完成,但是如果您知道的话,请告诉我一个可行的解决方案。非常感谢您的帮助。
最好的祝福,
海浪
解决方法
在vim中打开文件。如果不在退出模式下,请按ESC。
写这个
:%s/$/\\=line(\'.\')/
这会将数字序列附加在每行的末尾。首先添加数字
:%s/^/\\=line(\'.\')/
, 输入:
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
面值:20
说明:
:
:启动命令
%
:所有行
s
:替代
!
:图案开始
^
:行首
\\(
:小组开始
\\d
:数字
\\+
:一个或多个
\\)
:小组结束
.
:任意字符
*
:任意数量
!
:图案结束
&
:替换为-整个图案
\\t
:标签
\\1
:第一组
回车:执行
, 您可以使用由q启用的录音,后跟一个字母,该字母是该录音的书签。
例如。
在正常模式下,转到第一行并键入:
qe
^
y<space>
$
p
q (to end the recording)
现在键入@e
以播放字母e或20@e
的录音,然后重复@e 20次。
您可以像这样播放录音。在正常模式下,也许还会录制一个ѭ24so,以便将您带到下一行。