2012年9月19日

VIM筆記 - 常用操作

游標移動
※.游標移動到目前畫面的最上方H, 中間M及最下方L
※.游標移動到整個文件的n%位置: n%, 列如 50%
※.找到對應的括號: %
※.標記目前游標位置: m[a-z], 回到標記位置: '[a-z], [a-z]代表26個標記名稱, 列出所有標記: marks
搜尋
※.往右找第一個n開頭的字: fn, 反方向(向左): Fn, 往右重複尋找: ;, 往左重複尋找: ,
※.往下找: / 往上找: ? (pattern 前後的空白字元也會被當成搜尋的字元)
※..*[]^%\/?~$ 這些符號有其他意義,若要搜尋這些符號必須用\規避
※.往下找下一個符合項目: n,反方向: N
※.搜尋不分大小寫: set ignorecase, 反之: set noignorecase
※.以目前游標所在的字當key word搜尋: *
※.搜尋斷句符號: 開頭\<, 結尾\>, 例如:\當條件搜尋時,只會找the而不會找到there
※.搜尋支援正規表示式
常用操作
※.當利用dd或x刪除時,其實vim會將刪除的資料除存起來,可利用p貼上(p:貼於游標下, P:貼於游標上)
※.複製整行: yy, 複製2個單字: y2w(會包含單字後方的空白, 若不要空白用ye), 從游標複製到最後: y$
※.複製一整行到剪貼簿上(如此可以任意貼上到不同的應用程式): "+yy, 若要複製部份文字要配合 virtual mode使用
※.將剪貼簿的資料貼到vim: "+p
※.取代: r(取代一個字) or R(取代直到你按ESC)
※.置換大小寫: ~ (可結合virtual mode整批修改)
※.向前刪除一個字元: X, 向後刪除一個字元: x
※.從游標處刪除到行尾: d$ or d[end]
※.從游標前刪除到行頭: d^ or d[home]
※.刪除一整行:dd, 向後刪除一個單字:dw, 刪除游標處一整個單字: daw
※.接續下一行: J
排版
※.縮排: << or >>
※多行縮排: 進入VISUAL 模式後,選取要縮排的行後按下大於(>)
※整段註解: 按下 Ctrl+v 進入 VISUAL 模式後,選取預計要註解的行,按下I(大寫i) #
模式的切換
※.在游標處進入insert mode: i
※.在游標下新增一行並進入insert mode: o
※.在游標上新增一行並進入insert mode: O
※.將游標移動到最前面後進入insert mode: I
※.將游標移動到最後面並進入insert mode: A
※.在游標後方進入insert mode: a
※.以字元式進入virtual mode: v, 以行式進入virtual mode: V, 以區塊式virtual mode: C-V
檔案復原
在編輯的過程因不明原因當機,可利用 vim -r yourfile.txt來復原尚未儲存的資料
復原後建議儲存到另外的檔案 w yourfile.txt.recovered

分頁
開啟分頁: tabnew
關閉分頁: tabc(若當前只有一個分頁時指令會失敗), 關閉第N個分頁: tabc N
切換分頁: gt(下一個) or gT(上一個)

多行操作
這功能我常用在要註解多行程式或刪除時,按下 Ctrl+v 後選擇要處理的區域,按下I或d一次解決多行新增或刪除的動作

其他

Q:當 set mouse=a 時,如何複製資料到剪貼簿
A:按下 shift 後進行選取動作,這會暫時關閉 mouse=a功能


4 則留言:

  1. 回覆
    1. 你也有在用vim啊,這套真的愈用愈順手

      刪除
  2. 超級好用
    我的blog是:http://alvinlee0327.blogspot.tw/
    有機會也來逛逛,哈哈

    回覆刪除