title vim指令一覽
description vim指令一覽
datetime 2014-03-03 00:22:40
tags vim,cheat-sheet
category tools
link vim-cheat-sheet
file 2014-03-03-002240-vim-cheat-sheet
template post
end
[a] | 表示按一下a鍵 |
[a]+[b] | 表示先按一下a鍵,再按一下b鍵 |
[Ctrl][a] | 表示按住[Ctrl]不放,再按一下a鍵 |
[Ctrl]([a]+[b]) | 表示按住[Ctrl]不放,按一下a鍵,再按一下b鍵 |
[:command] | 表示在一般模式下,按下[:]後輸入command指令,再按下[Enter] |
[Ctrl][b] | (backward)向前翻一頁 |
[Ctrl][f] | (forward)向後翻一頁 |
[w] | (word)到下一個字首 |
[e] | (end)到下一個字尾 |
[b] | (backward)到上一個字首 |
[W] | (word)到下一個字首,略過標點符號 |
[E] | (end)到下一個字尾,略過標點符號 |
[B] | (backward)到上一個字首,略過標點符號 |
[^] | (head)到本行最前面第一個非空白字元 |
[$] | 到本行最後面 |
[0] | 到本行最前面 |
[H] | (high)到本頁最前面一行 |
[M] | (middle)到本頁中間那一行 |
[L] | (low)到本頁最後一行 |
[g]+[g] | 到本檔案第一行 |
[G] | 到本檔案最後一行 |
[:數字] | 跳至第[數字]行 |
[數字]+[|]+[Enter] | 跳至本行第[數字]個字元 |
[(] | 到下一個句首 |
[)] | 到上一個句首 |
[{] | 到下一個段落 |
[}] | 到上一個段落 |
[x] | 刪除游標所在位置字元 |
[X] | 刪除游標所在位置的前一個字元 |
[d]+[d] | (delete)刪除游標所在位置的那一行 |
[d]+[w] | 刪除游標所在位置到字尾 |
[d]+[b] | 刪除游標所在位置的前一個字元到字首 |
[d]+[g]+[g]或[d]+[1]+[G] | 刪除游標所在位置的那一行到檔案第一行 |
[d]+[G] | 刪除游標所在位置的那一行到檔案最後一行 |
[d]+[^]或[d]+[0] | 刪除游標所在位置的前一個字元到本行最前面 |
[d]+[$]或[D] | 刪除游標所在位置字元到本行最後面 |
[d][i]["] [d][i]['] [d][i][(] | 在游標所在位置刪除位在"/'/(的字串 |
[y]+[y] | (yank)複製游標所在位置的那一行 |
[y]+[w] | 複製游標所在位置到字尾 |
[y]+[b] | 複製游標所在位置的前一個字元到字首 |
[y]+[G] | 複製游標所在位置的那一行到檔案最後一行 |
[y]+[g]+[g]或[y]+[1]+[G] | 複製游標所在位置的那一行到檔案第一行 |
[p] | (put)在游標所在位置的字元之後(如果複製的是字或是選取的內容)或是後一行(如果複製的是行)貼上 |
[P] | 在游標所在位置的字元之前(如果複製的是字或是選取的內容)或是前一行(如果複製的是行)貼上 |
["]+[暫存區]+[y]+[y] | (register)將複製的那一行放到[暫存區]中,其中[暫存區]可以是任何一個英文字母 如果是小寫英文字母,則新複製的內容會蓋掉原本[暫存區]內容 如果是大寫英文字母,則會將新複製的內容接在[暫存區]內容的後面 |
["]+[暫存區]+[p] | 將[暫存區]的內容貼上 |
[:reg]或[:register] | 顯示[暫存區]的內容 |
[r] | (replace)取代游標所在位置的字元按下[r]之後,再輸入要用來取代的字元 |
[R] | 進入取代模式按下[R]之後,接下來輸入的字都會蓋掉原本的內容,按[Esc]回到一般模式 |
[>]+[>] | 本行向內縮排一次 |
[<]+[<] | 本行向外縮排一次 |
[u] | (undo)回復到編輯之前的狀態 |
[Ctrl][r] | (redo)回復到編輯之後的狀態 |
[U] | 在編輯前後的狀態之間切換,每做一次[U]視做新的一次編輯 |
[.] | 重複上一次的編輯 |
[J] | (joint)將下一行接到本行最後面,中間用空白隔開也就是將本行最後的換行字元取代成空白 |
[~] | 切換游標所在位置的那一個字元的大小寫後,將游標移到下一個字元 |
[i] | (insert)在游標所在位置字元之後插入 |
[I] | 在本行最後插入 |
[a] | (append)在游標所在位置字元之前插入 |
[A] | 在本行最前面插入 |
[o] | (open new line)在游標所在位置的那一行向下插入新的一行 |
[O] | 在游標所在位置的那一行向上插入新的一行 |
[s] | 刪除游標所在位置的那一個字元後插入 |
[S]或[c]+[c] | 刪除游標所在位置的那一行後插入 |
[c] | 刪除游標所在位置的那一個字後插入 |
[c]+[^]或[c]+[0] | 刪除游標所在位置的前一個字元到本行最前面後插入 |
[c]+[$]或[C] | 刪除游標所在位置字元到本行最後面後插入 |
[c][i]["] [c][i]['] [c][i][(] | 在游標所在位置刪除位在"/'/(的字串後插入 |
[v] | 在游標所在位置字元開始進行選取 |
[V] | 在游標所在位置的那一行開始以行為單位進行選取 |
[Ctrl][v] | 在游標所在位置字元開始以區塊的方式進行選取 |
[v][i]["] [v][i]['] [v][i][(] | 在游標所在位置選取位在"/'/(的字串 |
[>] | 將選取的行向內縮排一次並回到一般模式 |
[<] | 將選取的行向外縮排一次並回到一般模式 |
[:e 檔案] | (edit)開啟[檔案],如果檔案不存在則會開新檔案 |
[:w] | (write)存檔 |
[:q] | (quit)關閉檔案,如果檔案修改但尚未存檔,會不能關 |
[:q!] | 强制關閉檔案如果檔案修改但尚未存檔,則修改的部分會被捨棄 |
[:qw] | 存檔並關閉檔案 |
上面的指令都可以在前面加上a,對所有在buffer中的檔案都進行操作,例如:[:aq] 就是關閉所有檔案 |
[:buffers] | 列出所有的緩衝區 |
[:bn] | (buffer next)移到下一個緩衝區 |
[:bp] | (buffer previous)移到上一個緩衝區 |
[:b緩衝區號碼] | 移動到號碼為[緩衝區號碼]的緩衝區 |
[:bd] | (buffer delete)將目前開啟的檔案移出緩衝區,這個檔案必須要先儲存。 注意[:q] 關閉檔案並不會將檔案移出緩衝區,要使用[:bd] 才行。 |
[:!指令] | 執行外部指令[指令] |
[:!] | 執行前一個外部指令,根據history的順序 |
[:!!] | 執行前一次[:!指令] |
[:silent !指令] | 不顯示output,vim可能會變黑,這時候要下[:redraw]讓vim重新產生畫面 |
[:r !指令] | 將指令產生的output讀入到目前的buffer |