歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux命令

Linux教程-Vi的編輯操作及命令

Linux命令
  Vi中的行號
  
  Vi中的許多命令都要用到行號及行數等數值。若編輯的文件較大時,自己去數是非常不方便的。為此Vi提供了給文本加行號的功能。這些行號顯示在屏幕的左邊,而相應行的內容則顯示在行號之後。
  
  使用的命令為:在末行方式下輸入命令:
  
  :set number
  
  需要說明的是,這裡加的行號只是顯示給用戶看的,它們並不是文件內容的一部分。
  
  在一個較大的文件中,用戶可能需要了解光標當前行是哪一行,在文件中處於什麼位置,可在命令模式下用組合鍵,此時Vi會在顯示窗口的最後一行顯示出相應信息。該命令可以在任何時候使用。
  
  [例7]
  
  #include
  
  main ( )
  
  { int k ;
  
  for ( k=0 ; k<3 ; k++) add( );
  
  }
  
  add( )
  
  { static int x=0;
  
  x++ ;
  
  printf(“x = %d\n”, x);
  
  }
  
  ~
  
  ~
  
  ~
  
  ~
  
  ~
  
  “ example.c” [Modified] lines 4 of 10 --40%-- col 11
  
  在末行方式下,我們可以輸入命令nu(單詞number的縮寫)來獲得光標當前行的行號與該行內容。
  
  光標移動操作
  
  全屏幕文本編輯器中,光標的移動操作無疑是最經常使用的操作了。用戶只有熟練地使用移動光標的這些命令,才能迅速准確地到達所期望的位置處進行編輯。
  
  Vi中的光標移動既可以在命令模式下,也可以在文本輸入模式下,但操作的方法不盡相同。
  
  在文本輸入模式下,可直接使用鍵盤上的四個方向鍵移動光標。
  
  在命令模式下,有很多移動光標的方法。不但可以使用四個方向鍵來移動光標,還可以用h、j、k、l這四個鍵代替四個方向鍵來移動光標,這樣可以避免由於不同機器上的不同鍵盤定義所帶來的矛盾,而且使用熟練後可以手不離開字母鍵盤位置就能完成所有操作,從而提高工作效率。另外還可以用、、和四個鍵或組合鍵移動光標。且以上這三種鍵在實現功能上是等價的。除此之外,還有一些移動光標的命令。下面對它們的工作方式介紹如下:
  
  、® (均稱為右向鍵)
  
  右向鍵的作用是將光標向右移動一個位置。若在向右鍵前先輸入一個數字n,那麼光標就向右移動n個位置。例如5l表示光標向右移動5個位置。需要注意的是,光標移動不能超過當前行的末尾。若給定的n超過光標當前位置至行尾的字符個數,如果用右向鍵,光標只能移到行尾;如果用,光標移到下面一行或幾行的適當位置。
  
  h、、¬ (向左鍵)
  
  執行一次向左鍵,光標向左移動一個位置。同向右鍵一樣,也可以在向左鍵的前面輸入一個數字n,那麼光標就向左移動n個位置。需要注意的是,如果用左向鍵,光標左移不能超出該行的開頭;如果用,光標移到上面一行或幾行的適當位置。
  
  j、、¯ (向下鍵)
  
  執行一次向下鍵光標向下移動一個位置(即一行),但光標所在的列不變。當這些命令前面加上數字n,則光標下移n行。
  
  Vi除了可以用向下鍵將光標下移外,還可以用鍵和“+”鍵將光標下移一行或n行(不包括本行在內),但此時光標下移之後將位於該行的第一個字符處。例如:
  
  3j 光標下移3行,且光標所在列的位置不變。
  
  3+或3 光標下移3行,且光標位於該行的行首。
  
  k、、­ (向上鍵)
  
  執行一次向上鍵光標向上移動一個位置(即一行),但光標所在的列不變。同樣在這些命令前面加上數字n,則光標上移n行。
  
  若希望光標上移之後,光標位於該行的行首,則可以使用命令“- ”。
  
  L (移至行首)
  
  L 命令是將光標移到當前行的開頭,即將光標移至當前行的第一個非空白處(非制表符或非空格符)。
  
  $(移至行尾)
  
  該命令將光標移到當前行的行尾,停在最後一個字符上。若在$命令之前加上一個數字n,則光標下移n-1行並到達行尾。
  
  [行號] G(移至指定行)
  
  該命令將光標移至指定行號所指定的行的行首。這種移動稱為絕對定位移動。
  
  [例8]
  
  #include
  
  main ( )
  
  { int k ;
  
  for ( k=0 ; k<3 ; k++) add( );
  
  }
  
  add( )
  
  { static int x=0;
  
  x++ ;
  
  printf(“x = %d\n”, x);
  
  }
  
  ~
  
  ~
  
  ~
  
  ~
  
  ~
  
  “ example.c” 12 lines, 125 characters
  
  鍵入命令:6G後,屏幕顯示如下:
  
  #include
  
  main ( )
  
  { int k ;
  
  for ( k=0 ; k<3 ; k++) add( );
  
  }
  
  add( )
  
  { static int x=0;
  
  x++ ;
  
  printf(“x = %d\n”, x);
  
  }
  
  ~
  
  ~
  
  ~
  
  ~
  
  ~
  
  “ example.c” 12 lines, 125 characters
  
  光標移到了第6行的行首。
  
  若省略行號,則光標移至該文件的最後一行的行首,即無論該文件有多少屏,都跳至最後一行。
  
    摘自《Turbolinux》
Copyright © Linux教程網 All Rights Reserved