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

问题描述

| 我对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,以便将您带到下一行。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...