# Vim ## Mode * Command(一般指令) * 離開 * ''':w''': 存檔(write) * ''':q''': 離開(quit) * ''':wq''':存檔&離開 * ''':q!''':強制離開(!=force) * 進入Insert Mode * i: insert * a: append * o: new line * 移動游標 * h/←: 左 * j/↓: 下 * k/↑: 上 * l/→: 右 * [num] + [h|j|k|l]: 進行多次移動 * 如: '''3j'''即等於「往下移動3個字元」 * ctrl + f: Page Down * ctrl + b: Page Up * + / -: 游標移動到非空白字元的上一列/下一列 * n<space>: 按下數字後再按下空白鍵,游標會移動到右移的第n個字元 * 0 / $: 移到這一列的最前面/最後面字元 * G / gg(1G): 移動到這個檔案的最後一列/第一列 * n<Enter>: 游標向下移動n列 * shift+4: 游標移到該列的最後字元 * shift+6: 游標移到該列的最前面的字元 * w/e: 向前移動一個word * b: 向後移動一個word * 搜尋與取代 * /word: 游標之下尋找[word]字串 * ?word: 游標之上尋找[word]字串 * n: 向下搜尋下一個[word]字串 * :n1,n2s/word1/word2/g: n1&n2為數字。在n1與n2列之間尋找word1字串並取代為word2 * :1,$s/word1/word2/g: 從第一列到最後一列之間尋找word1字串並取代為word2 * :1,$s/word1/word2/gc: 同上,c代表confir,在取代前須給使用者確認是否要取代 * r: 替換一個字元為我所插入的字元 * R: 取代字元到按Esc離開為止 * s: 替換一個字元為我所插入的字串 * 刪除、複製&貼上 * x/X: 刪除一個字元,x相當於[del];X相當於[backspace] * nx: n為數字,nx即為向後刪除n個字元 * dd: 刪除一整列,若前面加數字(n),則為向下刪除n列 * dw: 刪除一個字(不適用中文) * dG: 刪除到最底 * yy: 複製游標所在的那一列,若前面加上數字(n),則為向下複製n列 * p/P: 將以複製的資料貼上。p為貼在游標的下一列;P為貼在游標的上一列 * u: 復原前一個動作(undo) * ctrl+r: 重做上一個動作(redo) * .:複製前一個動作 * 簡單排列功能 * \>\>: 向右移一個shiftwidth * <<: 向左移一個shiftwidth * :set sw? : 查看目前的設定值 * :set sw=n : 設定shiftwidth為n個字元 * Insert(編輯) * 返回Normal Mode * ESC / Ctrl+[