vi编辑器对老手而言,最大的长处之中的一个就是有非常多选项能够使用。而对于新手而言,这也是它的一大难点。本章介绍主要的vi文本编辑命令。这一篇文章主要介绍怎样移动光标,以及怎样添加和更改文本。

之前讲过,vi编辑器有两种模式,命令模式和插入模式。

在命令模式中,所输入的一切都会被vi编辑器当做是输入的命令。而在插入模式中,所输入的一切都被当做对应的文本更新到文件缓冲区中。当打开vi编辑器时。默认是命令模式,有非常多方式能够从命令模式转化为插入模式,比如输入 "i" 。假设要从插入模式转化为命令模式。仅仅需按"ESC"键就可以。因此假设你不知道当前处于vi的哪种模式,能够先按下ESC键回到命令模式。

移动光标:

当须要编辑文本时,首先须要做的可能就是将光标移动到须要编辑的地方。

移动光标时首先须要确认你处于vi的命令模式中。移动光标有例如以下命令:

单一的移动:

h: 向左移动一个字符。

j: 向下移动一行;

k: 向上移动一行;

l: 向右移动一个字符。

尽管能够通过上下左右四个按键或者通过"BACKSPACE"和"ENTER"键来实现移动,可是这四个命令更为经常使用,由于它能够使我们的手指不离开键盘中心就能完毕光标的移动。

当往某个方向移动到极限时,就无法继续移动了。

能够在这些移动命令前面加上数字。达到命令反复的功能。比如输入"4l"就相当于按下了4次l命令,即能直接将光标向右移动四个字符。

这样的命令反复功能能够给我们很多其它选择。并增强命令的功能。应该牢记。

在一行中高速移动的命令有两个:

0: 移动到行的开头;

$: 移动到行的尾部;

注意在vi编辑器中。屏幕上可见的一行并不一定就是真正的一行,vi编辑器是以换行符作为行的结尾。因此可能在屏幕上显示为多行,但实际上就是一行。例如以下图所看到的,尽管屏幕上看上去占用三行,但实际就是一行:

学习vi和vim编辑器(2): 简单的文本编辑(1)_vi编辑器

能够依照文本块来移动,文本块能够是单词,句子或段落。

w: 将光标移动到下一个单词,当中符号和标点也被觉得是一个单词;

W: 将光标移动到下一个单词,当中标点和符号不被当成一个单词。

b: 将光标倒退一个单词,当中标点和符号被当成一个单词;

B: 将光标倒退一个单词,当中标点和符号不被当成一个单词。

当然这些单词移动的命令也能够加上数值參数,这样就能同一时候移动多个单词,比如2w,5b等。

能够使用" G "命令直接移动到某个特定的行。

直接输入" G "命令,是移动到文件的尾部,1G是移动到文件的第一行。即文件顶端,而10G就能直接移动到文件的第十行。

编辑文本:

插入新文本:使用“ i ”命令进行文本的插入,i命令使vi编辑器从命令模式转化为插入模式,之后输入的一切都会被当成输入的文本更新到缓冲区中。" i "命令的细节值得说一下:输入" i "命令时。光标不移动。在光标之前的位置開始插入文本。

加入文本:加入文本使用" a "命令。a命令和i命令基本类似。仅仅只是在输入" a "命令时,光标会向后移动一个字符,因此是在原先光标之后输入文本。因此就被称为"加入"文本。

更改文本:假设须要更改文本,则须要使用" c "命令。更改命令能够觉得是先删除须要被替换的文本,然后等待你输入新的文本,输入的文本的长度没有要求。使用从c命令时,为了告诉c命令有多少文本须要更改,能够把c命令与光标移动命令一起使用:

cw: 从光标所在位置到该单词的结尾;

c$: 从光标所在位置到该行结尾,也能够直接使用C命令

c0: 从光标所在位置到该行开头;

c2b: 从光标位置往回两个单词,等等类似使用方法;

假设须要改动一整行。能够直接输入cc命令。不管此时光标在该行的何处,cc命令将直接将一整行文本替换成输入的新文本。cc命令和上面提到的C命令都是其它命令的简写形式。

事实上不止c命令。其他如删除( d )命令,拖曳( y )命令等等命令。都有例如以下的一般形式: ( command ) ( text object )形式。这里的command 就是我们的c,d,y等命令,而text object则是光标移动命令。指明command影响的文本范围。由于光标移动命令能够使用数值參数,因此能够这样使用 "d2w", 而"2dw"也是全然一样的效果。

" r "命令能够把一个字符替换为还有一个字符。并且替换之后直接是命令行模式,不须要按下ESC键从输入模式回到命令模式。

相对于" r "命令,R命令也能够进行字符的替换,可是" r "键一次仅仅能替换一个字符,而按下R键后,则会进入覆盖模式。

即你输入的字符将逐一覆盖原有的字符,直到按下ESC键。可是R命令最多仅仅能覆盖一整行。

" s "命令:也是用于字符的替换,它能够指定数值參数,代表替换多少个字符。假设仅仅使用" s "命令。则代表替换当前光标所在的字符。

" s "命令首先删除须要被替换的字符。然后等待插入新的字符,插入完成后须要手动按下ESC键又一次回到命令模式。

S命令:S命令直接替换一整行文本,无论当前光标在该行的哪个位置,都直接先将该行删除。

因此S命令等同于cc命令。但和C命令有差别。

更改大写和小写: 通过" ~ "命令完毕对当前字符的大写和小写转换。即当前假设是大写。则转化为小写,假设当前是小写。则转化为大写。更改之后光标自己主动移到下一个字符。


本章vi编辑器命令总结:

h,j,k,l,w,b,G,i。a,c。cc。C,r,R。s,S,~。