VI使用手冊

 

vi編輯器的使用

1vi的啓動與退出

1.1 vi 的啓動

   輸入vi命令後,便進入全屏幕編輯環境,此時的狀態爲命令方式。

 vi   光標定在該緩衝區第一行第一列位置

 vi example  光標定在緩衝區第一行第一列位置

 vi + example 光標定在文件最後一行第一列位置

 vi +N example  光標定位在文件第N行第一列的位置(N:爲數字)

 vi +/string example   光標定位在文件中第一次出現字符串string的行首位置

1.2  vi 的應用方式

*   有兩種操作方式:命令方式、插入方式和ex轉義方式

*   命令方式下輸入的大、小寫是敏感的。

1.3 vi 的退出

  建議 首先鍵入“ESC”鍵,以確保當前vi的狀態爲命令方式,輸入下列命令,退出vi。

  :w   將編輯緩衝區的內容寫入文件

   :q    退出vi

  :wq  將上面兩步操作可以合成一步來完成。

  :x   功能同上。

  :q   退出vi,此時的正文沒有被更改過。

  :q! 強行退出vi,使更新內容不寫回文件。

2光標在窗口中移動

註釋

   字   : 是由空格或標點符號分開的字母序列。

   句子 :是以句號(.)、問號(?)或感嘆號(!)結束的字符序列,句子之間由兩個空格或一個回車分開。

  段落  :一個段落前後各有一個或多個空白行。

2. 字符及行間移動

           命 令                                結果

    ——————————             ——————————

          ↑  或   k                           向上移一行

          ↓  或   j                           向下移一行

          ←  或   h  或 退格鍵                左移一個字符

          →  或   l  或  空格                 右移一個字符

           o                                   移到當前行的開始 

           $                                   移到當前行的結尾

           +  或  回車符                       移到下一行的開始 

           -                                   移到上一行的開始

2. 其它單位的移動

          命 令                                  結果

    ———————             —---------—————————

    w                           移到下一個字或標點符號

    W                           移到下一個字 

    e                           移到這個字或標點符號的結束 

    E                           移到字的下一結尾 

    b                           回到字或標點符號的開始 

    B                           移回到字的開始 

    )                          移到下一個句子的開始 

  (                            移到這個句子的開始 

    }                          移到下一段落的開始 

  {                            移到這一段落的上一開始 

3.在緩衝區中移動窗口

         命令                                  結果

   ——-———                   --—------—————————

     CTRL-F                       向前(上)移動一滿屏幕

     CTRL-D                       向前(上)移動半屏幕

     CTRL-B                       向後(下)移動一滿屏幕

     CTRL-U                       向後(下)移動半屏幕

   H                        光標移動到屏幕頂部

   M                       光標移動到屏幕中間

   L                       光標移動到屏幕底部

 注意   可在這些命令前加入數字n作爲前綴,使相應命令執行n次。但nG使光標定位在第n行。

4.光標在正文中的移動

         命令                           結果

   ——-———                   --—------—————————

        G                            光標移動到文件的尾部

       nG                            光標移動到文件的第n行

        : 0                           光標移動到文件的第1行

        : 1                           光標移動到文件的第1行

        : n                           光標移動到文件的第n行

        : $                           光標移動到文件的尾部

        /string                       光標向前移動到string首

        ?string                       光標向後移動到string首     

5.增加正文

         命令                            結果

   ——-———            ----------—------—————————

         a                         將輸入文本插入在光標之後

         A                         將輸入文本插入在當前行的行尾

         i                         將輸入文本插入在光標之前

         I                         將輸入文本插入在當前行的開始

         o                         將在當前行的下一行處打開一新行

         O                         將在當前行的上一行處打開一新行

注意    ESC:使編輯狀態從輸入方式切換到命令方式

6.修改正文

    命令                          結果

  ——-—      ---------------------—------—————————

    r               替換當前字符,不需按ESC。

    R               從當前字符開始進行替換,至ESC鍵爲止。

    nC              對從當前字符開始的n行字符進行替換,

                    直至鍵入ESC鍵爲止。

    nc$             同 nC。

    ncw             對當前字符開始的n個字進行替換操作,

                    直至鍵入ESC鍵爲止。

    ncc             對從當前字符開始的n行字符進行替換,

                    直至鍵入ESC鍵爲止。

    ns              替換從當前字符開始的n個字符,直至鍵入

                    ESC鍵爲止。

    nS              對從當前行開始的n行字符,進行替換,

                    直至鍵入ESC鍵爲止。

    J               將當前行和下一行連接起來。

   注意   n 爲數字,爲 1 時可省略。

7.刪除正文

7.1  x 與 命令的使用

       命令                           結果

    ——-—           --------------—------—————————

       x                      刪除當前字符。

       nx                     刪除從當前字符開始的n個字符。

       X                      刪除當前字符的前一個字符。

       nX                     刪除當前字符的前n個字符。

      注意   n 爲數字,爲 1 時可省略。

7.2  dD命令的使用

    用來將指定範圍內文本刪除,並存入緩衝區。

       命令                             結果

    ——-—           --------------—------—————————

      ndw                 刪除以當前字開始的n個字。

      nd$                 刪除以當前字符開始的n行字符。  

      ndd                 刪除從當前行開始的n行。

      D                   與d$同義。

      d)                  刪除到下一句的開始。

      d}                  刪除到下一段的開始。

      d 回車              刪除兩行。

      :start,endd         刪除文件第start到end行

8.移動與複製正本

8.1  m命令的使用

      將指定範圍的文本移動到指定位置。格式如下:

     <起始行號>,<結束行號> m <目標行號>

  例:: 3 , 14 m 56

          : 7 , 52 m 0

8.2  t命令的使用

      將指定範圍的文本複製到指定位置。格式如下:

     <起始行號>,<結束行號> t <目標行號>

  例: 1 , 14 t 60

           7 , 52 t $

8.3  yY命令的使用

    將指定範圍的文本複製到緩衝區,但不刪除其內容。

       命令                           結果

    ——-—           --------------—------—————————

    nyw               複製從當前字符開始的n個字;

    ny$               複製從當前字符開始的n行字符;  

     Y                與y$同義;

     y)               複製到下一句的開始;

     y}               複製到下一段的開始;

    nyy               複製從當前行開始的n行;

    y 回車            複製兩行;   

9.重複和取消操作

     命令                      結果

   ——-—    ----------------------—------—————————

        .          重複上一次所執行的命令。

       u           取消最後一次所做的修改或刪除。

       U           取消此次到當前行來做的所有修改。

       p           恢復當前緩衝區中內容。如緩衝區中內容是整

                 行信息,則放到當前行下面的一個新行;否則

                 將緩衝區的內容放到光標位置右邊。

        P        同p操作。恢復整行信息時,放到當前行上面的

                 一個新行;否則,放到光標位置左邊。

       :e!       重新編輯。廢棄對這次文件所做的全部修改,

                 重新從盤中讀入該文件,並開始編輯。 

10.檢索和替換

10.字符串檢索命令

   命令                           結果

   ——-—    ----------------------—------————————— 

    /string      從當前位置向後檢索字符串string,並將光標

                 定位在該串起始位置(向後循環檢 索 )。

    ?string      從當前位置向前檢索字符串string,並將光標

                 定位在該串起始位置( 向前循環檢索)。

       //        重複上一條檢索命令,但方向是向後檢索。

      ??         重複上一條檢索命令,但方向是向前檢索。

       n         重複上一條檢索命令,而不管其檢索方向。

                   (即檢索方向不變)。

       N         重複上一條檢索命令, 但檢索方向改向。

  :g/string      檢索字符串string,光標定位在第一次檢索到

                 的string所在行的行首。

10.2 字符串替換命令

格式1      :[addr]s/s1/s2/ [option]    

    [addr] 表示檢索範圍,省略時表示當前行。

            如: “1,20” :表示從第1行到20行;

                     “%” :表示整個文件,同“1,$”;

                     “. ,$” :從當前行到文件尾;

     s 爲替換命令;s1 要被替換的串;s2 爲替換的串;

     option :  ? g 表示全局替換;  ‚ c 進行確認 ;

                   ? p 替代結果逐行顯示(Ctrl + L恢復屏幕);

                   „ 省略時僅對每行第一個匹配串進行替換;

格式2     :g/s1/s//s2/ [option] 

11.其他命令

        命令                            結果

  ------—--—-—        --------------—------————————

 :set number             顯示行號。

 :set nonumber           不顯示行號。

 :set all                顯示vi各選項的設置情況。

 :f                    顯示當前文件及工作緩衝區狀況。

 :r filename           將名爲filename的文件內容插入到

                       緩衝區當前行的下面。         

 :r ! cmd              執行命令cmd,並將結果插入到緩衝

                       區當前行的下面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章