Vi編輯器入門

Vi編輯器入門
 
1、vi的工做模式shell

 vi有兩種基本的工做模式:命令(編輯)模式和文本輸入模式。編輯器

 命令模式:vi初始啓動時進入命令模式。它不顯示用戶輸入,只會被解釋執行。spa

 文本輸入模式:它就顯示用戶的輸入,只是做爲文本寫入到用戶的文件中。命令行

 狀態行:屏幕底部的一行,一般爲第24行,vi在該行上反饋編輯操做的結果。錯誤信息或其餘一些信息會在狀態行上顯示出來,vi還會在第24行上顯示那些以冒號、斜槓或問號開頭的命令。3d

2、命令模式unix

   注意:blog

   1,若是想使用光標移動鍵,就必須使vi處於命令模式。ci

   2,當vi編輯器處於命令模式時,大部分命令在按下鍵時就會啓動,所以不須要使用回車鍵來指明命令行的結束。get

 

         vi的光標移動鍵鍵                 功能博客

    h或[←]              將光標向左移動一位

    j 或[↓]              將光標向下移動一位

    k或[↑]              將光標向上移動一位

    l 或[→]              將光標向右移動一位

    $                    將光標移到當前行的行尾

    w                    將光標向右移動一個字

    b                    將光標向左移動一個字

    e                    將光標移到字尾

    0(零)                 將光標移到當前行的行首

    [Reuturn]鍵            將光標移到下一行的行首

    [Spacebar]鍵            將光標向右移動一位

    [Backspace]鍵           將光標向左移動一位

 

  命令模式下vi編輯器的文本修改鍵   

    鍵                     功能

    x                      刪除光標位置指定的字符

    dd                    刪除光標所在的行

    u                      撤銷最近的修改

    U                     撤銷對當前行作的全部修改

    r                      替換光標位置上的一個字符

    R                     替換從光標位置開始的字符,同時改變vi到文本輸入模式

    .(點)                 重複上一次的修改

3、文本輸入模式

  切換到文本輸入模式的命令鍵

    命令鍵                      功能

    i                      在光標左側輸入正文

    I                      在光標所在行的開頭輸入正文

    a                      在光標右側輸入正文

    A                     在光標的所在行的未尾輸入正文

    o                      在光標所在行的下一行增添新行,而且光標位於新行的開頭

    O                     在光標所在行的上一行增添新行,而且光標位於新行的開頭

 

  關閉文件

    ●     按[Esc]鍵,確保vi處於命令模式。

    ●     輸入 : 將提示符放到屏幕底部的狀態行上。

    ●     輸入q![Return],該命令不保存改變並退出vi。按[!]鍵表示確認放棄修改。

 

  當vi處於文本編輯器模式時[Return]的使用:

    ●     若是光標在行尾,光標的右邊沒有文本按[Return]鍵將會在當前行的下面添加一個空行

    ●     若是光標正好在當前行的第一個字符上,按[Return]鍵將會在當前行的上面添加一空行

    ●     若是光標在本行的其餘位置,而且它的右邊有文本,按[Return]鍵會把該行分紅兩行

 

  編輯多個文件

    ●     編輯另外一個文件:vi 可能同時打開多個文件,另外一種方法是用:e(edit) 

    ●     讀另外一個文件  :在vi編輯器命令模式下,輸入:r,後面跟文件名,並按[Return]鍵,:r命令將指定文件的副本放到緩衝區中光標位置以後。指定的文件成爲當前文件的一部分。

    ●     寫入另外一個文件:vi編輯器容許用戶將當前編輯文件的一部分寫(保存)到另外一個文件中。首先,用戶須要指出但願保存的行的範圍,而後用重排文本

  vi編輯器的剪切和粘貼鍵

    鍵            功能

    d             刪除指定位置的文本,並保存到臨時緩衝區中。

    y             複製指定位置的文本到臨時緩衝區。

    P             將指定緩衝區的內容放到當前光標位置之上

    p             將指定緩衝區的內容放到當前光標位置之下

    c             刪除文件並使vi進入文本輸入模式,這是刪除和插入命令的組合

 

  vi操做符的域

    部分vi域控制鍵

    域              功能

    $               標識域爲從光標位置開始到當前行尾

    0(零)            標識域爲從光標位置前到當前行首

    e或w          標識域爲從光標位置開始到當前字尾

    b              標識域爲從光標位置前到當前字首

 

4、命令的組合使用

  在unix中許多的命令是能夠組合使用的,這樣就顯出了 unix的強大之處。下面就列一些經常使用基本的文本處理的組合命令

    ◎使用刪除操做符和域控制鍵

    ★實例1:刪除從光標位置開始到當前行尾的文本,按d$

    ★實例2:刪除從光標位置以前到當前行首的文本,按d0

    ★實例3:刪除從光標位置後的一個字,按dw

    ★實例4:刪除光標位置後的多個字(例如,3個字),按3dw

    ★實例5:刪除到字尾,按de

    ★實例6:刪除到前一個字的字首,按db

  ◎使用移出操做符和域控制鍵

    ★實例1:複製從當前光標位置開始到當前行尾的文本,按y$

    ★實例2:複製從當前光標位置開始到當前行首的文本,按y0

  ◎使用修改操做符和域控制鍵

    修改操做符c能夠同時刪除和移出操做符同樣使用域控制鍵。c操做符與其餘操做符不一樣的是它將vi從命令模式轉換到文本輸入模式。

    Vi編輯器的某些版本用一個標誌來標記將被刪除的最後一個字符。這個標誌一般是美圓符($),它覆蓋將被刪除的最後一個字符。

    ★     實例:使用修改操做符和域控制鍵來修改一個字,按cw.

5、在vi中使用緩衝區

  ● 數字編號緩衝區:vi編輯器使用9個臨時緩衝區,編號從1到9。每次刪除或複製的文本都放在這些緩衝區中,用戶指定緩衝區號就能夠訪問任何一個緩衝區。每次新刪除或複製的文本替換緩衝區之前的內容。這意味着緩衝區1老是保留最近被修改的內容。

  用put操做符,並在它前面加上緩衝區號就能夠找回數字編號緩衝區的內容。指定緩衝區的格式能夠表示爲:

  雙引號+n(其中,n是緩衝區號,取1到9)+(p或P)

  ● 字母編號緩衝區:vi編輯器還使用26個命名緩衝區,這些緩衝區用小寫字母a到z來命名。用戶經過指定緩衝區我名字引用它們。這些緩衝區同數字緩衝區相似,不一樣之處在於,每次用戶在文件中刪除或移出文本時,vi編輯器不自動改變緩衝區的內容。用戶能夠將刪除或複製的文本存到指定的緩衝區,而後用put操做符將指定緩衝區的文本複製到文件的其餘地方。

  實例:完成下列操做,練習使用命令對指定的緩衝區進行操做。

    □     輸入」wdd,刪除當前行,將它的副本保存到緩衝區w」。

    □     輸入」wp,將緩衝區w的內容複製到光標位置」。

    □     輸入」z7yy,複製7行到緩衝區z」。

    □     輸入」zp,將緩衝區z的內容(7行)複製到光標位置」。

注意:1.這些命令不會顯示在屏幕上。

   2.字母編號緩衝區用小寫字母a到z命名

   3.使用這些命令不須要按[Return]鍵。

6、光標定位鍵

  vi的翻頁鍵

    鍵           功能 

    [Ctrl-d]                  將光標向下移動到文件尾,一般每次移動12行

    [Ctrl-u]                  將光標向上移動到文件頭,一般每次移動12行

    [Ctrl-f]                  將光標向下移動到文件尾,一般每次移動24行

    [Ctrl-b]                  將光標向上移動到文件頭,一般每次移動24行

 

  定位光標:使用的G命令,前面加上但願光標將位於的行號。

    實例:完成下列操做,使第1000行成爲當前行。

    □     輸入1000G,將光標移到第1000行上。

    □     輸入1G,將光標移到第1行上。

    □     輸入G,將光標移到文件尾。

  另外一種有用的命令是[Ctrl-g],它告訴用戶當前行號。例如,在命令模式下按[Ctrl-g]鍵,vi編輯器顯示相似於如下的信息:

  「myfirst」line 30 of 90 – 30%

7、設置vi的環境

  部分vi環境選項

  選項      縮寫    功能

  autoindent            ai                   將新行與前一行的行首對齊

  ignorecase           ic                    在搜索選項中忽略大小寫

  magic                                         容許在搜索時使用特殊字符

  number                nu                  顯示行號

  report                                         通知用戶上一個命令影響的行號

  scroll                                          設定[Ctrl-d]命令翻動的行數

  shiftwidth              sw                 設置縮進的空格數,與autoindent選項一塊兒使用

  showmode           smd               在屏幕的右角顯示vi編輯器的模式

  terse                                           縮短錯誤信息

  wrapmargin          wm                設置右邊界爲指定的字符數

8、行長和行迴繞

   用戶的終端一般有80列。當輸入文本到達行尾時,開始一個新行。

   wrapmargin選項:當用戶輸入文本到達距右邊界指定的字符數時,wrapmargin選項使vi編輯器斷開輸入的文本。例如,要設置wrapmargin爲10(其中10爲距離屏幕右邊界的字符數),輸入:set wrapmargin=10並按[Return]鍵。則輸入到達70列時,vi編輯器開始新行。就如同用戶按了[Return]鍵同樣了。

   wrapmargin選項的默認值是0(零)。要關閉wrapmargin選項,輸入:set wrapmargin=0並按[Return]鍵

9、縮寫和宏

  vi編輯器爲用戶提供一些捷徑使輸入更簡單,:ab和:map兩個命令就起這個做用。

   ● 編寫操做符:ab(abbreviateion)命令能夠給任何字符指定縮寫。

    例如,要縮寫常常在本書中使用的UNIX Operating System爲uno,輸入:ab uno UNIX Operating System.若是uno是另外一字的一部分,如unofficial,,則不會發生擴展。

    要取消縮寫,使用unab(unabbreviate)操做符。例如,要取消uno縮寫,輸入:unab uno並按[Return]鍵。

   ● 宏操做符(map)能夠指定單個鍵表明鍵序列,

    例如,要指定命令5dd(刪除5行)爲q,輸入: map q 5dd並按[Return]鍵。

      用戶也能夠在map命令中指定終端的功能鍵。在這種狀況下,輸入#n做爲鍵名,其中n指功能鍵號。例如,將5dd指定給[F2]鍵,vi刪除5行文本。

10、最後的vi命令――1運行shell命令

  用戶能夠在vi命令行中運行UNIX的shell命令。這一方便的特性容許用戶暫時將vi編輯器放在一邊,轉而執行shell命令。!(驚歎號)提示vi下一個命令是UNIX的shell命令。若是須要,用戶也能夠查看shell命令的執行結果並將其加入到文本中。使用: r(read)命令後面跟!,可將命令的結果插入到編輯文件中。

  實例:下面的命令序列顯示!的使用方式。

    □     輸入: ! ls

    □     輸入: ! who

    □     輸入: !date

    □     輸入: !pwd

    □     輸入: r ! date

    □     輸入:r ! cal 1 2005

    □     輸入:r ! vi mylast

  2行鏈接

  使用J命令鏈接兩行。J命令將當前行下面的一行鏈接到當前行上,放到光標位置以後。若是兩行鏈接產生一個長行,vi將其按屏幕進行折行。

  實例:完成下列操做便可鏈接兩行。

    □     使用光標移動鍵將光標放在第一行行尾。

    □     按J鍵,vi將當前行下面的一行連到當前行上。

  3搜索和替換

     vi的搜索命令(/和?)

     實例:下面的命令序列演示vi的搜索和替換功能

    □     輸入:/UNIX並按[Return]鍵,向下搜索找到第一個UNIX。

    □     輸入cwunix並按[Return]鍵,將UNIX替換爲unix/

    □     輸入n,找到下一個UNIX。

  4文件恢復選項

    用-r選項啓動vi編輯器崩潰時正在編輯的文件。例如,下面的命令能夠恢復myfirst

    $ vi –r myfirst [Return]…………………………………啓動vi的恢復選項

    若是不提供文件名進行編輯,或不記得當時編輯的文件名,可輸入vi –r命令

     $ vi –r  [Return]

 

 

 

 

vi 有三種模式:命令模式;插入模式;末行模式。
  打開編輯器默認就是命令模式,能夠經過輸入命令進入插入模式,從插入模式返回命令模式要按Esc鍵,在命令模式下輸入 :(冒號)切換到末行模式。
 
插入相關命令:
  Ø      a  //在光標後插入文本
  Ø      i   //在光標前插入文本
  Ø      o  //在當前行下面插入一行
  Ø      O //在當前行上面插入一行
  Ø      I  //在當前行開頭插入文本
  Ø      A //在當前行末尾插入文本


光標移動相關命令:
  Ø      Home //移動到光標所在行的最前面
  Ø      End //移動到光標所在列的最後面
  Ø      b  //移動到下個字的第一個字母
  Ø      w  //移動到上個字的第一個字母
  Ø      H  //移動到屏幕的第一列
  Ø      M  //移動到屏幕的中間列
  Ø      L  //移動到屏幕的最後列
  Ø      fx //向右移動到x字符上
  Ø      Fx //向左移動到x字符
  Ø      Pageup //向上翻頁
  Ø      Pagedown //向下翻頁
  Ø      shift+g  // 跳到文件尾
  Ø      ddp //和下一行交換


刪除相關命令:
  Ø      x  //刪除光標所在處的一個字符
  Ø      dw //刪除光標所在處向後的一個單詞
  Ø      D  //刪除光標處至行尾的全部字符
  Ø      dd //刪除光標所在行,能夠加數字表示要刪除的行數


替換命令:
  Ø      r  //替換光標所在處的一個字符
  Ø      R  //向右連續替換
  Ø      cw //替換光標向右的一個單詞


查找命令:
  Ø      /ac  //向光標下文查找ac,按n向下查找下一個按N回到上一個
  Ø      ?ac //向光標上文查找ac,按n向上查找下一個按N回到上一個


複製與粘貼相關命令:
  Ø      yw  //將光標向右一個單詞拷入剪貼板
  Ø      y$  //將光標至行尾的字符拷入剪貼板
  Ø      yy         //將當前行拷入剪貼板
  Ø      p       // 將剪貼板中的內容粘貼在光標後


文件保存及退出相關命令:
  Ø      :q        // 不保存退出  
  Ø      :q!        // 不保存強制性退出  
  Ø      :w         //保存編輯不退出
  Ø      :wq       //保存並退出
  Ø      :wq!      //強制保存退出

 

 

本文來自:

Stone.Wang的博客

http://blog.sina.com.cn/stonestore 

相關文章
相關標籤/搜索