vim进阶修炼(2)
--20191106
概要
写这个文档是想在vim上进阶一下。就像盲打后又学双拼,双拼后又练习数字标点盲打,技能提升后的势能是一致累加的。甚至不同的技能组合在一起会出现1+1>2的效果。
vim是linux下默认的文本编辑器之一。我使用它时间不短了,但是基本处于初级,很少有机会提升这个基础技能。可能有个原因是其他好用的文本编辑器太多了,这些年使用过atom、notepad++、ue、vcode、vnote,实在眼俩缭乱。一圈下来,花里胡哨的不少,基础的、最能挖掘效率潜力的vim却被我遗忘了。
当看到“以思维的速度编辑文档”,我明白要练习精进vim的目的了。于是买了《vim使用技巧》这本书,前面那句话就是它的slogan。该书是以一个一个的技巧组成的,看起来难免枯燥。于是我计划每天看几个,并简单记录一下,也可能把几个技巧组合总结,权当读书笔记。
插入模式
插入模式下修改错误
在插入模式下修改错误一般有两种情况:一是发现当前字词输入错误,直接删除重新输入即可;二是前面的内容错误,这需要重新定位光标。
第一种情况直接删除比较好,尤其是对输入速度不错的用户。因为重新定位光标、删除错字的时间已经够直接删除重新输入。如果错误的位置比较靠前,必须重新定位光标,那么只能返回普通模式,然后光标定位到错误位置。当然,也可以直接用键盘的方向键移动光标。在插入模式重新定位光标是个人喜好,我个人更倾向返回普通模式后重新定位。如果嫌ESC键太远,可以使用Ctrl+[ 组合件来代替。
返回普通模式
上面说Ctrl+[ 组合件可以代替ESC键。除了要重新定位光标需要返回普通模式,输入命令也需要返回普通模式。
但是,输入命令后常常又需要进入插入模式。这时就可以在插入模式下使用Ctrl+o 组合键进入一种特殊普通模式。在这种特殊普通模式下可以输入一次命令,命令执行完后自动进入插入模式。
插入模式访问寄存器
在插入模式下可以使用Ctrl+r 组合键来访问寄存器。使用这个快捷键就可以在插入模式下粘贴寄存器里的内容。具体用法是<C+r>{register}。
常见的寄存器用来临时存储文本,还有一种表达式寄存器。这种寄存器可以执行一段vim脚本。寄存器的内容在后面会详细总结。
表达式寄存器一个比较实用的功能就是在插入模式下计算数值。例如需要输入一个计算式结果,利用表达式寄存器可以直接在vim中进行计算。具体用法是在插入状态下<C+r>={表达式}。{表达式}就是你要计算的,比如<C+r>=53*85<CR>。
进入替换模式
替换模式就是输入一字符就会替换掉当前光标位置后的一个字符的模式。使用过insert键的应该容易理解。
在普通模式下,按R即可进入替换模式。替换模式可以理解为比较特殊的插入模式。按ESC键就可退回普通模式。
正如在这个系列文章前面一片中写的,vim的模式很多,但新手不需要在意。个人觉得,把众多vim模式归类为普通模式、插入模式、可视模式即可。