:h[elp] <keyword> - 為<keyword>打開幫助(不要使用“ <>” ):sav[eas] <file> - 保存<file>為:clo[se] - 關閉電流窗格:ter[minal] - 打開一個終端窗口K光標下的單詞開放頁面
提示: -在終端中運行vimtutor,以學習第一個vim命令。
h向左移動光標
j將光標向下移動
k將光標移動
l移動光標右
H移至屏幕頂部
M移至屏幕中間
L移至屏幕底部
w跳到單詞的開始
W跳到單詞的開始(單詞可以包含標點符號)
e跳到單詞的結尾
E跳到單詞的末尾(單詞可以包含標點符號)
b向後跳到單詞的開始
B向後跳到單詞的開始(單詞可以包含標點符號)
% - 移動到匹配的字符(默認支持對:'()','{}','[]' - 使用:vim中的h儀表pairs以獲取更多信息)
0跳到線的開始
^ - 跳到該行的第一個非空白字符
$ - 跳到線的盡頭
; - 重複以前的F,T,F或T運動
, - 重複以前的f,t,f或t移動,向後移動
} - 跳到下一個段落(或編輯代碼時功能/塊)
{ - 跳到以前的段落(或編輯代碼時功能/塊)
g_跳到該行的最後一個非空白字符gg轉到文檔的第一行G轉到文檔的最後一行5gg或5G轉到第5行gd轉到本地聲明gD轉到全球聲明fx跳到字符x的下一個出現tx跳到下次出現字符x之前Fx跳到字符X的先前情況Tx跳到以前出現字符x之後zz屏幕上的中心光標gh將光標移至Pevious編輯線gj將光標移至下一個編輯線g0跳到編輯線的開頭g^ - 跳到編輯線中的第一個非空白字符g$ - 跳到編輯線的末端Ctrl + e向下移動屏幕(無移動光標)
Ctrl + y向上移動屏幕(無移動光標)
Ctrl + b向後移動一個全屏
Ctrl + f向前移動一個全屏
Ctrl + d向前移動1/2屏幕
Ctrl + u向後移1/2屏幕
提示: -前綴一個光標移動命令,具有一個數字以重複它。例如,4J向下移動4行。
Ctrl + h在插入模式期間刪除光標之前的字符Ctrl + w在插入模式期間光標之前刪除單詞Ctrl + j在插入模式下開始新線路Ctrl + t縮進(向右移動)在插入模式下的一條移位Ctrl + d插入模式期間一條移動放寬(向左移動)Ctrl + n插入(自動完成)下一場比賽Ctrl + p插入(自動完成)上一次匹配Ctrl + rx插入寄存器x的內容Ctrl + ws拆分窗口Ctrl + wv垂直分裂窗口Ctrl + ww切換窗口Ctrl + wq退出窗口Ctrl + wx與下一個的交換當前窗口Ctrl + w= - 使所有窗戶相等的高度和寬度Ctrl + wh將光標移動到左窗口(垂直拆分)Ctrl + wl將光標移動到右窗口(垂直拆分)Ctrl + wj將光標移動到下面的窗口(水平拆分)Ctrl + wk將光標移動到上方的窗口(水平拆分) i - 在光標之前插入I在行的開頭插入a光標後插入(附加)A在行末尾插入(附加)o附加(打開)當前行以下的新線路O附加(打開)當前行上方的新線路ea插入(附加)單詞結尾Esc退出插入模式r更換單個字符J將下面的線加入當前的線,兩者之間有一個空間gJ在下面連接到當前的線,介於兩者之間gwip回流段落g~切換箱直至運動gu更改下小寫的運動gU更改為大寫運動cc更改(替換)整行C更改(替換)到線的末端c$ - 更改(替換)到線的末端ciw更改(替換)整個單詞cw更改(替換)到單詞的結尾s刪除字符和替代文本S刪除行和替代文本(與CC相同)xp轉置兩個字母(刪除和糊狀)u撤消U還原(撤消)最後一個更改線Ctrl + r重做. - 重複最後一個命令v啟動視覺模式,標記線,然後執行命令(例如y -yank)V啟動線路視覺模式gv啟動視覺模式,回憶先前的選擇o移至標記區域的另一端Ctrl + v開始視覺塊模式O移至塊的另一個角落aw標記一個單詞ab帶有()的塊aB {}的塊at帶有<>標籤的塊ib內塊()iB內部塊,{}it帶有<>標籤的內部塊Esc退出視覺模式> - 正確的文字正確< - 剩下的移位文字y揚克(複製)標記文本d刪除標記文本~開關情況u將標記的文本更改為小寫U將標記的文本更改為大寫:reg[isters] - 顯示寄存器內容
"xy`傾斜到寄存器x
"xp`寄存器的粘貼內容x
"+y`向系統剪貼板寄存器傾斜
"+p`從系統剪貼板寄存器粘貼
提示-寄存器被存儲在〜/.viminfo中,並將再次在VIM的下一個重新啟動中加載。
0最後一次拉克" - 未命名的登記冊,最後刪除或Yank% - 當前文件名# - 替代文件名* - 剪貼板內容(x11主)+ - 剪貼板內容(X11剪貼板)/ - 最後的搜索模式: - 最後一個命令行. - 最後插入的文字-最後一個小(小於一行)刪除= - 表達式寄存器_黑洞寄存器:marks* - 標記列表
ma設定標記A的當前位置
`a跳到標記A的位置
y`a - A位置的文字
`0轉到先前退出VIM的位置
`" - 上次編輯此文件時,請轉到位置
`. - 轉到該文件中最後一個更改的位置
`` -在上次跳前前往位置
:ju[mps] - 跳躍清單
Ctrl + i轉到跳躍列表中的新位置
Ctrl + o轉到跳躍列表中的較舊位置
:changes - 更改列表
g, - 轉到變更列表中的較新位置
g; - 轉到變更列表中的較舊位置
Ctrl + ] - 在光標下跳到標籤
提示-跳到標記,您可以使用反理( ` )或撇號(')。使用撇號跳到持有標記的線的開頭(第一非黑)。
qa記錄宏Aq - 停止記錄宏@a a-運行宏A@@ -重新運行最後運行宏yy揚克(複製)一行2yy -yank(副本)2行yw揚克(複製)單詞的字符從光標位置到下一個單詞的開始y$ - 揚克(複製)到線的結尾p放置(粘貼)光標之後的剪貼板P放在光標之前(粘貼)dd刪除(切)2dd刪除(切)2行dw刪除(剪切)單詞的字符從光標位置到下一個單詞的開始D刪除(切)到線的末端d$ - 刪除(切)到線的末端x刪除(剪切)字符>> - 縮進(右移動)行一條位置<< - De -Indent(向左移動)一行>% - 帶有()或{}的塊(撐桿上的光標)>ib ()縮進內塊>at - 帶有<>標籤的塊3== - 重新連接3行=% - 用()或{}(撐桿上的光標)重新指出一個塊=iB {}的重新指示內塊gg=G重新註冊整個緩衝區]p粘貼並調整到當前線:w寫(保存)文件,但不要退出:w!sudo tee % - 使用sudo寫出當前文件:wq或:x或ZZ寫(保存)並退出:q退出(如果有未保存的更改,則會失敗):q!或ZQ退出並扔掉未保存的更改:wqa寫(保存)並在所有選項卡上退出/pattern - 搜索模式?pattern - 向後搜索圖案vpattern “非常魔術”模式:非alphanumeric字符被解釋為特殊的正則符號(無需逃脫)n在同一方向上重複搜索N在相反的方向上重複搜索:%s/old/new/g將所有舊替換為全舊文件:%s/old/new/gc用確認:noh[lsearch] - 刪除搜索匹配的突出顯示:vim[grep] /pattern/ {`{file}`}**** - 在多個文件中搜索模式** eg :vim[grep] /foo/ **/*:cn[ext] - 跳到下一場比賽:cp[revious] - 跳到上一場比賽:cope[n] - 打開一個包含匹配列表的窗口:ccl[ose] - 關閉QuickFix窗口:tabnew或:tabnew {page.words.file} - 在新選項卡中打開一個文件Ctrl + wT將當前的拆分窗口移動到自己的選項卡中gt或:tabn[ext] - 移至下一個選項卡gT OR :tabp[revious] - 移至上一個選項卡#gt GT-移動到選項卡號#:tabm[ove] # - 將當前選項卡移至#位置(從0索引):tabc[lose] - 關閉當前標籤及其所有窗口:tabo[nly] - 關閉所有選項卡:tabdo command - 在所有選項卡上運行命令(例如:tabdo q關閉所有打開的選項卡) :e[dit]文件 - 在新的緩衝區中編輯文件:bn[ext] - 轉到下一個緩衝區:bp[revious] - 轉到上一個緩衝區:bd[elete] - 刪除緩衝區(關閉文件):b[uffer]# - 索引#轉到緩衝區:b[uffer] <file> - <file>轉到緩衝區(_remove“ <>”):ls或:buffers - 列出所有開放緩衝區:sp[lit] <file> - 在新的緩衝區和拆分窗口中打開<file>:vs[plit] <file> - 在新的緩衝區中打開<file> ,並垂直拆分窗口:vert[ical] ba[ll] - 將所有緩衝區編輯為垂直窗口:tab ba[ll] - 將所有緩衝區編輯為選項卡zf手動定義折疊以進行運動zd刪除光標下方的折疊za光標下方切換折疊zo光標下方的折疊zc光標下的關閉折疊zr將所有折疊減少(打開)一個級別zm折疊更多(關閉)所有折疊zi切換折疊功能]c跳到下一個更改開始[c跳到先前的更改開始do或:diffg[et] - 獲得(get)差異(從其他緩衝區)dp或:diffpu[t] - 放置差異(到其他緩衝區):diffthis使當前窗口的一部分:dif[fupdate] - 更新差異:diffo[ff] - 關閉當前窗口的DIFF模式