在linux下做開發,甚至是只做管理維護工作,也少不了Vim的使用。作為一個新手,我也是剛剛接觸,本節將我日常使用或收集的Vim常用命令記錄下來。
當然,直接在命令行上輸入:vimtutor,就可以學習到Vim的所有命令了。Vim很強大,很多牛人在vim里集成很多插件什么的,但這里只介紹基本vim命令。
移動命令
h "左 j "下 k "上 l "右 w "光標移動到下一個單詞的首字符 a word forward b "光標移動到上一個單詞的首字符 e "光標移動到下一個單詞的尾字符 ge "光標移動到上一個單詞的尾字符 $ "將光標移動到當前行行尾 ^ "將光標移動到當前行第一個非空白字符 0 "將光標移動到當前行第一個字符
注: 這些命令除了'0'命令以外都可以在前面接受一個記數,2$;上面所有命令都可以在前面接受一些操作命令,如d$,dw等。
修改命令
x "刪除一個字符 d "其后跟任何一個位移命令,將刪除從當前光標到位移終點處的文本 "內容,如dw,delete word c "與d命令功能類似,不同的在執行完刪除后命令進去Insert模式,change dd "刪除一整行 yy "復制一整行 p "把剪貼板內容粘帖到當前位置
vimdiff 1.c 2.c "創建一個垂直分割窗口比較這兩個文件不同的地方
搜索命令
f<a> "單字符搜索,fa是在當前行搜索下一個a,find a /string "全文本搜索一個字符串,如要找到單詞"func"則用/func "如果文本有多個func,按下n就會移動到接下來的func位置上 "n前面也可以接受數字計數,如3n,就會找緊接第三個func ?string "與/string的功能相同,唯一的區別就是搜索的方向相反
注:
- 可以用:set noingorecase 忽略字符大小寫;
- /和?命令都有記憶功能,可以用多次<UP>鍵選擇搜索歷史,記錄命令最大的歷史條數可以在會話viminfo上更改;
- 搜索字符.*/?%$^[]等特殊字符要在前面加一個反斜杠轉意;
- 搜索到孤立的單詞,也就是前后都沒有其他字符的(除了空格,制表符),如只搜the,不想搜到there或whether這樣的,要用/\<the\>;
- 可以用:set hlsearch把要搜索的單詞高亮顯示;
定位命令
G "光標移動到文件的最后一行,或者Shift+G 15G "光標移動到文件的第15行,或者15gg gg "光標移動到文件的第一行 45% "光標移動到文件45%處 H "光標移動到當前屏幕的最開始 M "光標移動到當前屏幕的中間 L "光標移動到當前屏幕的最后
注: CTRL+g查看當前光標位置
滾屏命令
CTRL+U "窗口向上滾半屏 CTRL+D "窗口向下滾半屏 CTRL+E "向上滾一行 CTRL+Y "向下滾一行 CTRL+F "窗口向上滾一整屏 CTRL+B "窗口向下滾一整屏 zz "當前行置於屏幕中央 zt "當前行置於屏幕頂端 zb "當前行置於屏幕底端
分割窗口
:split "橫着分割 :new "橫着添加一個新窗口 :vsplit "豎着分割 :vnew "豎着添加新窗口 CRTL+W w "按順序切換小窗口 :qall "關閉所有窗口 :wall "保存所有窗口
標簽(tab)命令
:tabedit filename "在正在編輯的vim窗口建一個叫filename的tab頁 :tab split "新建一個tab頁 gt "移動到下一個tab頁 gT "移動到下一個tab頁
矩形選擇塊(多行注釋)
#多行注釋 將光標定位到某一行的第一個非空格字符 按下Ctrl+v,選擇開始位置; Ctrl+d或者上下箭頭進行移動; 按下I,輸入“//”,再按下ESC,完成多行注釋; 注意上面第三步也可以使用左右箭頭進行矩形區域選擇
附上一個vim的命令集錦圖片(圖片來源於網絡,原始出處已不可考):
暫時就這么多了,以后學習到新的命令了還會持續更新的。
另外高級的Vim命令請參考: