Linux教程(28)-vi命令(2)

2008-02-23 05:30:05来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

在屏幕上移动

Vi提供了三个关于光标在全屏幕上移动并且文档本身不发生滚动的命令。他们分别是H、M和L命令。

H命令

该命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的第一行,而不是整个文档的第一行。利用此命令能够快速将光标移至屏幕顶部。若在H命令之前加上数字n,则将光标移至第n行的行首。

[例9] 屏幕显示如下内容:

#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将会删除从光标当前所在行至所显示屏幕首行的全部内容。

M命令

该命令将光标移至屏幕显示文档的中间行的行首。即假如当前屏幕已充满,则移动到整个屏幕的中间行;假如并未充满,则移动到文本的那些行的中间行。利用此命令能够快速地将光标从屏幕的任意位置移至屏幕显示文档的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。

同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文档的中间行的全部内容。

L命令

当文档显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文档显示内容不足一屏时,该命令将光标移至文档的最后一行的行首。可见,利用此命令能够快速准确地将光标移至屏幕底部或文档的最后一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令3L之后,光标都将移到x 这一行的字母x上。

同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。

按字移动光标

首先介绍一下Vi中“字”的概念。在Vi中“字”有两种含义。一种是广义的字,他能够是两个空格之间的任何内容。

[例10] 在文档example.c 中的第4行:

{int k;

他只有2个字,一个是{int ,另一个是k;

Vi中另一种字是狭义上的字,在此种意义之下,英文单词、标点符号和非字母字符(如!、@、#、$、%、^、&、*、(、)、-、 、{、}、[、]、~、|、\、<、>、/等)均被当成是个字。因此,上面那一行中就包括{、int、k、;这4个字。

Vi中使用大写命令一般就是指将字作为广义来对待,使用小写命令就是作为狭义对待。

搞清楚Vi中字的含义后,我们就能够介绍按字移动光标的命令了。

Vi 一共提供了三组关于按字移动光标的命令,分别是:


w和W命令

将光标右移至下一个字的字首;

[例11] 屏幕上显示如下:

printf(“Hello Mr.Huang!\n”);

现在使用w命令,把光标移到下一个字(狭义)的字首“(”上:

printf(“Hello Mr.Huang!\n”);

下面使用W命令,将把光标移到下一个字(广义)的字首“M”上:

printf(“Hello Mr.Huang!\n”);


e和E命令

假如光标起始位置处于字内(即非字尾处),则该命令将把光标移到本字字尾;假如光标起始位置处于字尾,则该命令将把光标移动到下一个字的字尾。


b和B

假如光标处于所在字内(即非字首),则该命令将把光标移至本字字首;假如光标处于所在字字首,则该命令将把光标移到上一个字的字首。

[例12] 屏幕显示如下:

printf(“Hello Mr.Huang!\n”);

现在使用b命令,由于光标处于该字中间,所以光标移动到本字字首“H”处:

printf(“Hello Mr.Huang!\n”);

假如使用B命令,则如下所示:

printf(“Hello Mr.Huang!\n”);

按句移动光标

在Vi中,一个句子被定义为是以逗号(,)、句号(.)、问号(?)和感叹号(!)结尾,且其后面跟着至少两个以上(含两个)空格或一个换行符的字符序列。

Vi提供了关于按句移动光标的两个命令,分别为:

1. ( 命令

将光标移至上一个句子的开头。

2. ) 命令

该命令将光标移至下一个句子的开头。

按段移动光标

在Vi中,一个段被定义为是以一个空白行开始和结束的片段。Vi提供了关于按段移动光标的两个命令,分别为:

1. { 命令

该命令将光标向前移至上一个段的开头;

2. } 命令

该命令将光标向后移至下一个段的开头。

屏幕滚动

屏幕命令是以屏幕为单位移动光标的,常用于文档的滚屏和分页。需要注意的是,屏幕命令不是光标移动命令,不能作为文本限定符用于删除命令中。

在命令模式下和文本输入模式下均能够使用屏幕滚动命令。


1. 滚屏命令

关于滚屏命令有两个:

· < Ctrl u > 将屏幕向前(文档头方向)翻滚半屏;

· < Ctrl d > 将屏幕向后(文档尾方向)翻滚半屏。

能够在这两个命令之前加上一个数字n,则屏幕向前或向后翻滚n行。并且这个值被系统记住,以后再用< Ctrl u >和< Ctrl d >命令滚屏时,还滚相应的行数。

2. 分页命令

关于分页命令也有两个:

· < Ctrl f > 将屏幕向文档尾方向翻滚一整屏(即一页);

· < Ctrl b > 将屏幕向文档首方向翻滚一整屏(即一页)。

同样也能够在这两个命令之前加上一个数字n,则屏幕向前或向后移动n页。

3. 状态命令< Ctrl G >

命令显示在vi状态行上的vi状态信息,包括正在编辑的文档名、是否修改过、当前行号、文档的行数连同光标之前的行占整个文档的百分比。

4. 屏幕调零命令

Vi 提供了三个有关屏幕调零的命令。他们的格式分别为:

· [行号] z [行数] <回车>

· [行号] z [行数] .

· [行号] z [行数] _

若省略了行号和行数,这三个命令分别为将光标所在的当前行作为屏幕的首行、中间行和最末行重新显示;若给出行号,那么该行号所对应的行就作为当前行显示在屏幕的首行、中间行和最末行;若给出行数,则他规定了在屏幕上显示的行数。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Linux教程(29)-vi命令(3)

下一篇: Linux教程(27)-vi命令(1)