Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->入门与提高 ->正文

Linux教程-vi命令(1)

来源:Linuxdby.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  在屏幕上移动
  
  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 > 将屏幕向文件首方向翻滚一整屏(即一页)。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇: Linux教程-Vi的编辑操作及命令   下一篇: Linux教程-vi命令(2)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号