在前面的文章《Vim技巧之四大模式_普通模式》中我们提到过四大模式之一的普通模式,今天我们继续讲讲Vim
四大模式里面的插入模式
普通模式好比是发动一个技能,而插入模式则好比是一般的物理攻击,但是就算是平平淡淡的物理攻击,还是有不少的技巧可言的
在普通模式中,我们要更改一个错误的输入有许多种做法,我们可以直接点击u
来撤消之前键入的内容,也可以用caw
,ciw
,cb
等等命令来将错误的输入进行及时的更改,但是如果我们在插入模式中想要及时的更改错误的输入,难道除了<Backspace>
就没有其他的方法了么?
在许多流行的编辑器里面,比如Emacs
,Sublime Text
,如果发现输入错误,则可以<C-Backspace>
来将删除前一个单词,在Emacs
中还可以<C-k>
将光标所在的整行数据删除,那在Vim
里面有没有这种便捷的操作呢?
按键操作 | 作用 |
---|---|
<C-h> (Backspace ) |
删除前一个字符 |
<C-w> |
删除前一个单词 |
<C-u> |
删至行首 |
掌握了上面的技巧就可以不用回到普通模式也可以快速的更改数据了
在插入模式的某些情况下我们只是想执行普通模式下面的一条命令,然后继续输入数据,我们可以用<C-o>
来回到普通模式,在执行完一条命令以后,马上就会返回到插入模式。(我个人还是比较喜欢直接<ESC>
)
比如你在编辑文本的时候需要将正在编辑的该行文本居中(zz
)或者是置顶(zt
),你就可以<C-o>zz
就可以啦。
首先,我们需要知道什么是Vim
寄存器,Vim
的寄存器顾名思义就是用来寄存一些特定的数据或者是用户自定义的数据,在我们需要的时候直接访问寄存器即可,在Vim
里面输入:reg
来查看寄存器中存放的内容
可以看到各种各样的寄存器,如需了解Vim
寄存器,请看这里vim寄存器使用详解
比如其中比较经常用到的数字寄存器"[0-9]
,Vim
将复制的数据保存到寄存器"0
中,将删除的最新数据保存到"1
中,旧的删除的数据将从前一个寄存器中移动到下一个寄存器中,比如当删除新的数据的时候时候,寄存器"1
的数据将会转移到寄存器"2
中,"2
的转移到"3
中,以此类推,最后将新的删除数据保存到"1
中。
有些时候我们想粘贴之前就删除的数据(不是最新删除的数据),这时候使用p
明显是不行的了,因为p
只粘贴最新的删除或者复制的数据,那么之前删除的数据就消失了么?其实不然,Vim
将会为我们保存九次删除操作的数据,只要在插入模式下键入<C-r>{register}
就可以粘贴register
中的数据了,在普通模式下为"{register}p
举个栗子:
我们有下面的文本:
查看一下寄存器中的东西
我们要粘贴寄存器
"8
的数据,<C-r>8
注意:
使用<C-r>{register}
粘贴的数据将会保留原有数据的缩进格式,如果你设置了testwidth
或者是autoindent
,那么就有可能出现不必要的缩进。这时你就需要采用<C-r><C-p>{register}
来单纯的插入数据,没有任何的缩进
如果我们在插入模式中需要进行一些简单的运算,我们可以直接使用表达式寄存器"=
来计算我们的表达式,并插入结果,具体用法为<C-r>={expression}<CR>
,其中expression
是我们需要计算的式子,比如1+2
,10*6
…
举个栗子:
我们键入两个表达式:
借助表达式寄存器完成基本计算
<C-r>=5+12<CR>
<C-r>=6*78<CR>
只要我们知道某个字符的编码,Vim
就可以直接插入这个字符,我们只用在插入模式中输入<C-v>{code}
就可以插入code
对应的字符,比如<C-v>065
就可以插入大写字母‘A‘
反之,如果你想知道某个字符的编码,你可以将光标移到该字符上,然后输入ga
,屏幕下方就会显示该字符的编码了
在Vim
中,如果你想键入一段新的文本来替代原有的文本,那么R
和r
这两个命令你是不可不知的
命令 | 作用 |
---|---|
R |
从光标处开始替换文本直到按下<ESC> |
r |
替换当前的一个字符 |
举个栗子:
要将上面的
Vimer
改为loser
,我们可以这样来改
0(移动到句首)
fV(移动到Vimer
词首)
Rlos(将Vim
改为los
)
注意:
我们在使用替换的时候,Vim
是将占有多个空格宽度的制表符当做是一个替换字符,于是我们在进行替换时就会有各种不希望出现的缩进,不对齐。为了避免这种情况,我们可以使用gR
或者gr
命令来进行替换操作,在gR
和gr
替换中,Vim
会将制表符当做一组空格来处理,具体的空格数要由制表符占用的空格宽度决定,这种替换成为虚拟替换模式。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/ii1245712564/article/details/46797505