vim區域選擇

塊選擇(Visual Block)

Vim的大部分命令都是以行爲單位的,有時候想要刪除、粘貼或複製特定區域,那麼如何搞定一塊範圍呢?

一般模式下,塊選擇的按鍵意義

v

字符選擇,將光標經過的字符選擇

V

行選擇,將光標經過的行選擇

[Ctrl]+v

矩形選擇,可以用矩形的方式選擇數據

y

將選中地方複製起來

d

將選中地方刪除

 

小寫v的效果,以第一行的s爲光標起點,往下走:


這個效果很像windows用鼠標操作的效果。

大寫V的效果,以第一行的s爲光標起點,往下走:


以行爲單位,只要經過的行都被選擇。

[Ctrl]+v的效果,以第一行的s爲光標起點,往下走:


矩形選擇,起點爲左上角,落點爲右下角。按下y後,將光標移動到第一行末尾分號處後,p粘貼,效果如下圖


As you see,挺實用的, Vim的大部分命令都是以行爲單位的,有時候想要刪除、粘貼或複製特定區域

 

範例:給一大段代碼加上//,註釋掉


比如現在想把161行到170行的兩個函數定義註釋掉。

這裏我們結合vim的.命令和塊選擇,(vim的.命令會記住上一次的操作)

當前光標處在161行,I//<ESC>後將定位到該行頭部,並且插入//註釋,後退出插入模式。然後按下大寫V,然後按下170G,將選中161到170行,接下來要對這些選中的行執行.命令(即I//<ESC>),使用命令:normal對整個範圍同時執行.命令。

:’<,’>normal.命令可以解讀爲對高亮區中的每一行,對其執行普通模式下的.命令。


最後光標處在170行。


(當然也可以直接:161,170 normal   I//,normal可以執行任意的普通模式的命令,I會自動切換到插入模式,但是修改完成之後,vim會自動返回普通模式)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章