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会自动返回普通模式)

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