熟練掌握Vim編輯器的常用命令能大大提高我們文本編輯的效率。 基本操作
我們最初接觸Vim編輯器時,首先學到的不乏以下一些操作:
剛進入Vim編輯器時,我們處於普通模式,在鍵盤上按下i,我們便進入插入模式。在插入模式下,如果按下Esc,則又回到普通模式。
在插入模式下,我們可以鍵入文本。
在普通模式下,我們則可以利用一些命令來快捷操作我們的文本,如:
x : 刪除當前游標所在的一個字元:wq : 儲存並退出 (:w 儲存,:q 退出,且以:開始的命令需要輸入斷行符號)dd : 刪除當前行,並把刪除的行儲存到剪貼簿裡p : 粘貼剪貼簿裡的內容h(向左)、j(向下)、k(向上)、l(向右)移動游標,當然,我們還可以利用↑、↓、←、→來移動
更進一步
在瞭解了Vim編輯器的基本操作後,我們需要學習更多的命令來更進一步。
1.不同的插入模式
i : 在游標所在位置插入a : 在游標所在位置後插入o : 在當前行後插入一行新行O : 在當前行前插入一行新行cw : 把游標所在位置到下一個單詞之前的內容刪掉,並進入插入模式
樣本:cw命令
游標當前位置
使用cw命令後
2.快速移動游標
想要快速移動游標提高效率,我們移動游標的操作應不僅限於h、j、k、l / ↑、↓、←、→。
0(數字零) : 移動到行頭^ : 移動到本行第一個不是blank字元的位置$ : 移動到本行行尾g_ : 移動到本行最後一個不是blank字元的位置。/要尋找的字串 : 尋找字串(如果搜尋出多個匹配,可按n鍵移動到下一個)
樣本:尋找字串
在開啟的文本中尋找 Thread 字串,命令為 /Thread
尋找到的結果會高亮顯示,我們可以按n鍵移動到下一個匹配(:nohl命令取消高亮顯示)
3.複製/粘貼
p/P : 粘貼(p與P的區別在於,p是粘貼到當前位置之後,P是粘貼到當前位置之前)yy : 複製當前行的內容
4.撤銷/恢複
u : undo,撤銷之前的操作Ctrl+r : redo,恢複之前的操作
5.檔案的開啟/儲存/退出
:e filename : 在 Vim 編輯器裡開啟一個檔案:saveas filename : 另存新檔:x,ZZ 或 :wq : 儲存並退出 (ZZ不需要輸入冒號並斷行符號):x和:wq的區別在於:wq會強制性寫入檔案並退出,即使檔案沒有被修改也強制寫入,並更新檔案的修改時間:q! : 退出不儲存 :qa! : 強行退出所有的正在編輯的檔案,就算別的檔案有更改:bn 和:bp : 當Vim同時開啟很多檔案時,可以使用這兩個命令來切換到下一個或上一個檔案
樣本:開啟多個檔案
首先在命令列使用命令 vim Thread.cc 在Vim編輯器開啟檔案Thread.cc
在Vim普通模式下,輸入:e ./Atomic.h,就開啟了目前的目錄下的檔案Atomic.h
提高效率
1.重複操作
有些情況下,我們需要對某一操作重複執行多次,譬如刪除多行、多次輸入同一文本行……那麼Vim是怎樣重複操作的呢。
一種方式是按下.,就會重複上次的命令;
另一種方式是 n+command ,在執行某命令之前輸入想執行的次數n,該命令便會執行n次。
樣本:2dd : 刪除2行4p : 粘貼文本4次10ilove<Esc> : 會寫入“lovelovelovelovelovelovelovelovelovelove”(命令中的i是指切換到插入模式)這時按下 . ,會再寫入10次“love”
2.更快地移動游標
除了上面我們介紹的一些快速移動游標的命令外,還有一些更快速、移動範圍更大的游標移動命令值得我們瞭解。
gg : 移動到文本開頭G : 移動到文本末尾n+G 或 :n :移動到第n行w : 按單詞移動,移動到下一個單詞的開頭e : 按單詞移動,移動到下一個單詞的末尾
我們要著重介紹的是下面兩個游標移動命令:
% : 匹配括弧移動,包括 (, {, [. (使用前你需要把游標先移到括弧上)* 和 # : 匹配游標當前所在的單詞,移動游標到下一個(或上一個)匹配的位置(*是下一個,#是上一個)
樣本:使用 % 來匹配括弧移動
首先將游標移動到某一括弧上
按下 % ,可以看到游標移動到該括弧匹配的括弧處
樣本:使用 * 來匹配單詞並在單詞間移動
使用前,我們需要將游標移動到某一單詞上,我們移動到 Thread 上
然後按下 * ,可以看到 Thread 所有的匹配都高亮顯示了,我們可以繼續按下 * 移動到下一個匹配
3.命令的組合使用
我們可以利用學到的游標移動命令,與其他命令組合使用,從而實現高效的編輯,例如下面游標移動與複製命令的組合使用:
(1)0y$ 命令意味著:0 → 先到行頭y → 從這裡開始拷貝$ → 拷貝到本行最後一個字元(2)ye 命令則意味著從當前位置拷貝到本單詞的最後一個字元(3)還可以輸入 y2/foo 來拷貝2個 “foo” 之間的字串
樣本:在開啟的文本裡使用命令 y2/Thread
紅框標識了游標的當前位置和鄰近的兩個“Thread”字串的位置
執行命令 y2/Thread
將游標移到空白行,按下粘貼操作 p ,看看複製了什麼內容
4.自動補全
例如:我們想輸入 Thread ,當我們鍵入單詞的開頭,再按下Ctrl+p或者Ctrl+n,就能進入自動補全的選擇了。
5.可視化選擇
普通模式下按下 v、V或者Ctrl+v會進入可視模式。在可視模式下,隨著游標的移動,可以選中行、塊、地區。
一旦選好了,我們就可以執行一些操作了,例如之前介紹的y複製、d刪除,另外還有下面介紹的一些操作
J : 把所有選中的行串連起來(變成一行)< 或 > : 向左或右縮排= : 自動縮排gu : 變小寫gU : 變大寫
樣本:選中幾行內容,將其都變為大寫
進入可視行,選中內容
執行命令 gU
參考資料:
酷殼-簡明 Vim 練級攻略:http://coolshell.cn/articles/5426.html