vi命令还是比较常用的,于是我研究了一下Linux vi命令,在这里拿出来和大家分享一下,希望对大家有用。在屏幕上移动Linux vi提供了三个关于光标在全屏幕上移动并且文件本身不发生滚动的命令。它们分别是H、M和L命令。
Linux vi H命令
该Linux vi 命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的***行,而不是整个文件的***行。利用此命令可以快速将光标移至屏幕顶部。若在H命令之前加上数字n,则将光标移至第n行的行首。
屏幕显示如下内容:
#include
main ( )
{ int k ;
for ( k=0 ; k<3 ; k++) add( ); }
add( )
{ static int x=0;
x++ ;
printf(“x=%d\n”, x);
“ example.c” [ New File]
在命令模式下输入4H命令后,光标移到以for开头的这一行的字母f上。值得一提的是,使用命令dH将会删除从光标当前所在行至所显示屏幕首行的全部内容。
Linux vi M命令
该命令将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文件的中间行的全部内容。
Linux vi L命令
当文件显示内容超过一屏时,该命令将光标移至屏幕上的***行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的***一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的***一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令3L之后,光标都将移到x++这一行的字母x上。
同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。
按字移动光标首先介绍一下Linux vi中“字”的概念。在Vi中“字”有两种含义。一种是广义的字,它可以是两个空格之间的任何内容。
在文件example.c 中的第4行:
{int k; 它只有2个字,一个是{int ,另一个是k;
Vi中另一种字是狭义上的字,在此种意义之下,英文单词、标点符号和非字母字符(如!、@、#、$、%、^、&、*、(、)、-、+、{、}、[、]、~、|、\、<、>、/等)均被当成是一个字。因此,上面那一行中就包括{、int、k、;这4个字。 Vi中使用大写命令一般就是指将字作为广义来对待,使用小写命令就是作为狭义对待。
搞清楚Linux vi中字的含义后,我们就可以介绍按字移动光标的命令了。Linux vi 一共提供了三组关于按字移动光标的命令,分别是:
Linux vi w和W命令
将光标右移至下一个字的字首;
屏幕上显示如下:
printf(“Hello Mr.Huang!\n”);
现在使用w命令,把光标移到下一个字(狭义)的字首“(”上:
printf(“Hello Mr.Huang!\n”);
下面使用W命令,将把光标移到下一个字(广义)的字首“M”上:
printf(“Hello Mr.Huang!\n”);
Linux vi e和E命令
如果光标起始位置处于字内(即非字尾处),则该命令将把光标移到本字字尾;如果光标起始位置处于字尾,则该命令将把光标移动到下一个字的字尾。
Linux vi b和B
如果光标处于所在字内(即非字首),则该命令将把光标移至本字字首;如果光标处于所在字字首,则该命令将把光标移到上一个字的字首。
屏幕显示如下:
printf(“Hello Mr.Huang!\n”);
现在使用b命令,由于光标处于该字中间,所以光标移动到本字字首“H”处:
printf(“Hello Mr.Huang!\n”);
如果使用B命令,则如下所示:
printf(“Hello Mr.Huang!\n”);
按句移动光标 在Vi中,一个句子被定义为是以逗号(,)、句号(.)、问号(?)和感叹号(!)结尾,且其后面跟着至少两个以上(含两个)空格或一个换行符的字符序列。 Linux vi提供了关于按句移动光标的两个命令,分别为:
1. 命令将光标移至上一个句子的开头。
2. 命令该命令将光标移至下一个句子的开头。
按段移动光标在Linux vi中,一个段被定义为是以一个空白行开始和结束的片段。Vi提供了关于按段移动光标的两个命令,分别为:
1. 命令该命令将光标向前移至上一个段的开头;
2. 命令该命令将光标向后移至下一个段的开头。
屏幕滚动
屏幕Linux vi命令是以屏幕为单位移动光标的,常用于文件的滚屏和分页。需要注意的是,屏幕命令不是光标移动命令,不能作为文本限定符用于删除命令中。在命令模式下和文本输入模式下均可以使用屏幕滚动命令。
【编辑推荐】