VIM常用命令
光標移動
- h、j、k、l 光標移動左下上右
- 20j、20↓ 向下移動20行
- +、- 光標移動到非空格符的下、上一行
- 0 或[Home] 移動到本行首字符處
- $ 或[End] 移動到本行尾字符處
- ^ 移動到本行第一個非空字符處
- g_ 移動到本行最後一個非空字符處
- w 到下一個單詞的開頭
- e 到下一個單詞的結尾
- gg 移動到第一行
- G 移動到最後一行
- nG 移動到第n行(ngg/:n亦可)
- n回車 向下移動n行
- H 移動到屏幕最上方第一個字符(high)
- M 移動到屏幕最中央第一個字符(middle)
- L 移動到屏幕最下方第一個字符(low)
- % 匹配括號移動,包括 (,{, [,需將光標先移動到括號
- */# 匹配光標當前所在的單詞
大小寫轉換
- ~ 單個字符,光標所在位置大小寫轉換,reverse
- gu/gU 切換爲小/大寫,再加限定ggguG
- ggguG 整篇轉換爲小寫,可理解爲gg:文件頭,G:文件尾,gu:切換爲小寫
- gggUG 整篇轉換爲大寫
- gU0 從光標所在位置到行首,都變爲大寫
- gU$ 從光標所在位置到行尾,都變爲大寫
- gUG 從光標所在位置到文章最後一個字符,都變爲大寫
- gU1G 從光標所在位置到文章第一個字符,都變爲大寫,和gUgg一樣,其實就是指令+限定
刪除、複製、粘貼
- u 撤銷undo
- ctrl+r 重做redo
- . 重複前一個動作(重複刪除、粘貼等)
- x、X 刪除一個字符
- dd 刪除一整行
- ndd 刪除光標所在的向下n行
- d1G 刪除光標所在到第一行的所有數據
- dG 刪除光標所在到最後一行的所有數據
- d$ 刪除光標所在處到該行的最後一個字符
- d0 刪除光標所在處到該行的最前面一個字符
- :n1,n2d 刪除n1至n2行
- :n1,n2con3 將n1至n2行復制到n3行之後
- :n1,n2mon3 將n1至n2行移動到n3行之後
- yy 複製光標所在的那一行
- nyy 複製光標所在的向下 n 行
- y1G 複製遊標所在行到第一行的所有數據
- yG 複製遊標所在行到最後一行的所有數據
- y0 複製光標所在的那個字符到該行行首的所有數據
- y$ 複製光標所在的那個字符到該行行尾的所有數據
- p、P 將複製的數據粘貼在光標下/上一行
- J 將光標所在行與下一行數據合成一行
查找、替換
- /word 向光標之下尋找一個名稱爲word的字符串
- ?word 向光標之上尋找一個名稱爲word的字符串
- n、N next搜尋/反向搜尋(與n相反)
- :%s/word1/word2/g 第一行到最後一行1替換爲2
- :%s/word1/word2/gc 第一行到最後一行1替換爲2,需確認
- :n1,n2s/word1/word2/g 第 n1 與 n2 行之間,1替換爲2
- :s/word1/word2/g 當前行(:s)
- :%s/word1/word2/g 全文
- :’<,’>s/word1/word2/g Visual模式下選擇區域後輸入:可自動補全
- r、R 取代模式,取代字符一次/一直取代(replace) cw替換光標位置到一個單詞結束
塊操作
- Ctrl+v 開始塊操作
Ctrl+v 向下移動
I(大寫i)+ESC I(A插入到行尾)是插入行首,按ESC鍵來爲每一行生效。 - = 自動給縮進
- </> 左右縮進
分屏
- vim -On file1 file2 … 大寫的O參數來垂直分屏,n表示分成幾個屏
- vim -on file1 file2 … 小寫的O參數來水平分屏
- Ctrl+W 上下左右 光標移到上下左右屏。
- Ctrl+W H/J/K/L 移動分屏
- Ctrl+W =/+/- 使所有屏幕增加/減少/等高
- Ctrl+W s 上下分割當前打開的文件(split)
- Ctrl+W v 左右分割當前打開的文件
- :sp filename 上下分割,並打開一個新的文件
- :vsp filename 上下分割,並打開一個新的文件
- Ctrl+w c 關閉當前窗口
通用
- i 輸入模式,從目前光標所在處輸入
- o、O 輸入模式,從目前光標所在下/上一行處輸入
- :w 保存
- :q 退出
- :q! 強制退出不儲存(!強制)
- :wq 保存退出,同ZZ
- ZZ 若未更改不儲存離開,若更改,儲存後離開
- :w [filename] 另存爲
- :r [filename] 讀入另一個檔案的數據到光標所在行後
- :n1,n2 w [filename] 將n1到n2行的內容儲存爲filename
- :e [filename] 編輯新的文件
- :set nu 顯示行號
- :set nonu取消行號
- Ctrl+v/Ctrl+v Insert 模式下,自動補齊
批量註釋
- 批量註釋:Ctrl+v進入塊選擇模式,然後移動光標選中你要註釋的行,再按大寫的I進入行首插入模式輸入註釋符號如//或#,輸入完畢之後,按兩下ESC,Vim會自動將你選中的所有行首都加上註釋,保存退出完成註釋。
- 取消註釋
Ctrl+v進入塊選擇模式,選中你要刪除的行首的註釋符號,注意/ 要選中兩個,選好之後按d或x即可刪除註釋,ESC保存退出。