vim 高級功能

  • 2019 年 10 月 3 日
  • 筆記

本文章原創首發於公眾號:編程三分鐘 ,文末二維碼。

文本編輯、跳轉、刪除、複製、替換這些操作用vim確實是快;但是好像僅僅是這樣根本不能說服我vim超過滑鼠的地方。

花點時間弄熟這些,除了炫技意外,主要為了防止深夜被拉起來救火,機房還不能遠程,連夜打車到了地方,卻發現伺服器沒有圖形化介面,這個時候要是腳本寫的熟,vim操作6幾下修復完了,能盡量降低損失,也能睡個好覺了。

高級功能入門

常用操作在之間的文章我們已經已經掌握了,接下來就要搞一點高級操作,基本誰看見都要感嘆一聲「你vim怎麼這麼6!。

  • 同時修改多個文件、快速在文件之間切換
  • 編輯多個文檔時分屏操作
  • 批量注釋多行程式碼、修改配置、區域複製刪除

多文件的編輯

同時編輯兩個文件1.txt,2.txt

vim 1.txt 2.txt

查看同時打開了哪些文件 :ls,其中%a表示正在編輯的文件。

在文件之間切換 :n , :N

直接切換到想要編輯的文件 :b 1.txt

當然了我們為什麼跳來跳去,因為這可以完成多個文件之間複製粘貼等組合操作。

分屏

創建分屏

:sp 2.txt 打開新的水平分屏(上下)視窗來編輯2.txt

:vsp 2.txt打開新的垂直分屏(左右)視窗來編輯2.txt

分屏跳轉與移動分屏

我先打開了三個文件,1.txt 2.txt 3.txt

現在我分別跳轉到各個文件中,刪除文件內容。

普通模式下Ctrl+w j移至下面視窗

普通模式下Ctrl+w k 移至上面視窗

普通模式下Ctrl+w h 移至左邊視窗

普通模式下Ctrl+w l 移至右邊視窗

現在我垂直打開了三個文件,使用以下命令移動視窗,先把文件3從最左邊移動到最右邊,再移動下最下邊

普通模式下Ctrl+w J將當前視窗移至下面

普通模式下Ctrl+w K 將當前視窗移至上面

普通模式下Ctrl+w H 將當前視窗移至左邊

普通模式下Ctrl+w L 將當前視窗移至右邊

只要位於相應視窗,:q :wq q!退出就可以;wqaqa!全部退出

可視模式

可視模式分為三種,也是vim的精髓。分別是行,矩形區域選擇,字元段落選擇。

和滑鼠選擇類似,進入可視模式加定位符號就可以快速跳轉到想選擇的範圍,選中以後再進行複製,刪除等操作。

行選擇

行選擇 Shift+v(小寫) , 整行選取,可以上下移動游標選更多的行,再按一次 Shift+v 就可以取消選取。

如下,進入行選擇模式,輸入4G,跳轉到第四行,d刪除所選區域。

矩形區域選擇

矩形區域選擇Ctrl+v(小寫),按區域選取,可以上下左右移動游標選更多的區域,再按一次 Ctrl+v就可以取消選取。

如下:選擇所有的行和第一列所在在區域,shift+i進入插入模式,插入#,雙擊兩次esc,批量注釋。然後重複選擇動作,輸入x刪除所選區域。

字元選擇(段落選擇)

字元選擇 v(小寫),可以移動游標,游標走過的地方就會選取。再次按下v後就會取消選取。

如下:v$選中192.168.1.2退一格為了不選中換行符,到第一行粘貼ip再選中不需要的ip刪除掉。

可視化模式和定位符結合使用效果最佳!

小結

同時編輯多個文件: vim 1.txt 2.txt, 切換文件 :n:N:b 1.txt

分屏 :sp 2.txt  :vsp 2.txt,跳轉Ctrl+w h|j|k|l 移動分屏位

Ctrl+w H|J|K|L

可視模式 Shift+vCtrl+vv

vim命令比較多,這裡只列舉最有用的,足以應對全部的場景了,記的越多速度越快!