高效使用Vim編輯器--Vim編輯器常用命令學習筆記

來源:互聯網
上載者:User

熟練掌握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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.