Vim操作技法整理

Vim在Linux上是非常重要的一個編輯器,後序要學習的Shell Script、系統程式開發、甚至是網站內容編輯...等。都可以此老牌編輯器來完成,故需整理一文章來紀錄之。

搭配mc這個檔案瀏灠器更增方便,一方面可以快速地在資料夾間瀏灠檔案內容,一方面也可快速地做檔案編輯、拷貝、刪除等動作十分方便。

(零)各類總整:
  切換:iao/v/esc/shift+:
  移動:kjhl/wb/()/{}/[]/^$/HML/gg GG + n(次數) 
             shift+上下左右鍵。
  刪除:dd/dw/d$/d0/xX/dnj/dnk(n=次數) 
  回覆:uU/ctrl+r
  複製與貼上:yy/yw/y$/y0/pP/ynj/ynk(n=次數) 
  搜尋:nN/shift+8(待尋字串前按此即可)
  替換:(%s)(3, 6s)/old/new只換第一個,換3~6。
  分身:sp/vsp/close/ctrl+w(切換畫面)
  設定:/etc/vim/vimrc中可設定set nu...等。
  ctags:ctags -R生成,ctrl+[ ]尋找,ctrl+t返回
              vim -t [tag名]用來開檔。
              在.vimrc中加入set tags=tags
                                      set tags+=./tags
 
(一)使用幫助:
   :help 進入幫助。
  ctrl+] 進入說明單元內容。
  ctrl+t(o) 離開說明單元內容。 
  : 命令列下TAB補全字元功能也存在。

(二)基本切換:
    i  游標字元前輸入模式。
    a 游標字元後輸入模式。
    o 游標字元上一行輸入模式。
    I 游標字首前輸入模式。
    A 游標字首後輸入模式。
    O 游標字元下一行輸入模式。
    J 將下一行連接至本行輸入模式。
    ESC 切到預設模式狀態。
    shift+: 切到指令輸入狀態。     

(三)多檔案間編輯:
    ctrl+z  將目前編輯工作程式推到背景執行。
    fg N(數字) 將背景程式推到前景繼續編輯。
    jobs 指令列出所有被推到背景的編輯程式。
    vim +n (filename) 開檔後游標落在n行。
    vim +-x (filename) 檔案加密。
    vim +-r (filename) 檔案回復。
    vim +/字串 (filename) 開檔後游標落在字串處。
    :e (#) (filename) 指令列開檔(#編前一個)。
    :n(N) 編下(上)一個檔案。 
    :files(buffers or ls) 列出buffer中所有檔案。
    :bn(l) 列出下(上)一個檔案。
    :b (filename or n) 則移至該檔案。
    :bd 移除buffer內檔案。 
    :f 顯示目前編輯檔名。
    :f (filename) 改變目前編輯檔名。
    :r (n) (filename) 在行數處插入一個檔案內容。
    :w (filename) 另存檔名後離開。

(四)檔案內移動:
    h 前移。
    j 下移。
    k 上移。
    l 後移。
    ctrl+f(b) 翻上(下)頁。
    shift+^($) 移到行首(尾)。
    gg(G) 移到檔案首(尾)。
    w(W) 移到英文字首。
    e(E) 移到英文字尾。
    b(B) 移到前一英文字首。
    H 移到螢幕頂。
    M 移到螢幕中。
    L 移到螢幕底。
    ( 移到下一句首。
    ) 移到上一句首。
    { 移到下一段首。
    } 移到上一段首。   
    :set nu/nonu 顯示/不顯示行號。
    :行號 移動到該行。

(五) 基本編輯指令:
    x(X) 刪除游標後(前)字元。
    dd 刪除一整行。
    dw 刪除一個英文字。
    dG 刪到游標至檔尾。
    dgg 刪到游標至檔頭。
    D(d$) 刪到游標至行尾(含游標所在字元)。
    d0 刪到游標至行首。
     r 取代一個字元。
     R 取代字元,直到按ESC。
     cc 取代整行字元。
     cw 取代一個英文字。
     ~ 游標處字元大小寫互換。
     C 游標處取代至行尾。
     c0 游標處取代至行首。
     s 游標處插入一字元,並刪掉原來字元。
     u 回覆原來動作,就是undo。
     U 游標未離本行前,回覆本行所有動作。
     ctrl+r 此動作就是redo。
     >> 整行向右移一個TAB。
     << 整行向左移一個TAB。
     :ce 本文置中。
     :ri 本文靠右。
     :le 本文靠左。
     gqip 整段重排。
     gqq 本行重排。
     數字鍵加上上述的字元,可以達到加乘的作用。

(六)複製指令:
     yy 複製一整行。
     y0(^) 複製至行首。
     y$ 複製至行尾。
     yw 複製一個字。
     yG 複製至檔尾。
     p(P) 內容貼至游標後(前)。
     "ayy 將本行內容複製到緩衝區a(共有a~z 26個緩衝區)。
     "ap 將a緩衝區內容貼上(:reg 0~25 可看複製內容)。
     . 重複前一次指令。
      ctrl+滑鼠右鍵 可以區塊複製。  
 
(七)搜尋與替換指令:
     :/(?)[待查字串] 即可向下(上)搜尋字串。
     n(N) 繼續往下(上)查字串。
     :[range]s/pattern/string[c、e、g、i] 取代指令。
     [range] 1,7 表示1~7行。(%表目前文章、#表前篇文章)
     pattern 待換字串(可用regexp)。
     string 取代字串。
     c 每次詢問。
     e 不顯示錯誤。
     g 不問,整行替換。
     i 不分大小寫。
     :%s/Edwin/Edward/g 將整篇文章的Edwin換成Edward。
     :3, 6s/old/new/g 將3~6行的old換成new。
    
  (八)有用連結:
      Trace Kernel設定

沒有留言:

張貼留言