Vim实践技巧一:为每行数据前面添加行号

Vim实践技巧一:为每行数据前面添加行号,第1张

最近在写Thrift文件时,从其他地方拷贝过来的数据,没能带上行号,这样子得手工一行行添加行号,比较费时费力。

原数据:

期望数据:

这里涉及两个问题:

1、只要2-4行需要自动添加行号

2、需要在Vim编辑器上执行

解决思路:

1、在Vim命令模式下指定行数

2、通过外部命令Awk可以自动生成行数

在vim的命令行模式输入:

就可以实现上述目的

释义:

1、指定行数:2,4

只要2-4行

2、执行外部命令:!awk '{print ""NR":" 2}'

!awk:执行外部命令awk

NR:行数。这里是NR行数与Vim行数不一样,而是我们输入的指定内容行行数,即2-4行内容

打开第一个文件,进入vim的宏录制模式,开始录制宏,结束录制宏。

1、打开第一个文件:在vim中输入命令vimfile1,打开第一个文件。在vim中输入命令:splitfile2,打开第二个文件并分屏显示。在vim中输入命令G,光标会移动到第一个文件的末尾行。

2、进入vim的宏录制模式:在vim中输入命令qa,这里的a是宏的名称,可以替换成其他字母。

3、开始录制宏:在vim中输入命令Yp^w,这里的Yp是复制当前行并粘贴到下一行,是将当前行的数字加1,^w是将光标移动到下一个窗口。

4、结束录制宏:在vim中输入命令q,结束宏的录制。在vim中输入命令@a,执行刚刚录制的宏,即将第一个文件和第二个文件对应行的数字相加。在vim中输入命令:norm@a,这里的:norm是执行普通模式命令的意思,@a是执行宏a,表示将宏a在当前文件的每一行上都执行一次,即将第一个文件和第二个文件对应行的数字相加。

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。

在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的 *** 作,而读取、保存、大量替换字符、离开vii、显示行号等 *** 作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。

下面列出平时用的最多的vi命令:

移动光标的方法:

[Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。

[Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。

0或功能键[Home]:移动到这一行的最前面字符处。

$或功能键[End]:移动到这一行的最后面字符处。

G:移动到这个文件的最后一行。

gg:移动到这个文件的第一行,相当于1G.

N[Enter]:N为数字,光标向下移动N行。

查找和替换:

/word:向下寻找一个名称为word的字符串。

?word:向上寻找一个名称为word的字符串。

:n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.

:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.

:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

删除、复制和粘贴:

x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。

dd:删除光标所在的一整行。

ndd:删除光标所在的向下n行。

yy:复制光标所在的一行。

nyy:复制光标所在的向下n行。

p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。

u:复原前一个 *** 作。

[Ctrl]+r:重做上一个 *** 作。

.:小数点,重复前一个 *** 作。

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是……


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7915362.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存