第一章 vim中简化删除,光标移动和查找操作

在个人vim使用基础中,整理了最简单的常规用法,但对于vim这个软件来说,利用功能还远远不够。

本质上讲,我们的代码编写工作是重复性的,凡是可以简化重复性操作的方式,都会成倍节省我们的时间。

这正是vim的核心思想。


一,命令行模式下简化删除:

①删除单个字符:【x】

②删除从光标开始到单词结尾:【dw】


假设光标在r处,按下【dw】后ruct这4个字符被删掉了;

假设光标在单词第一个字符处,按下【dw】会删除整个单词;

假设光标在单词第一个字符处,按下【d2w】会删除两个连续单词;


如图struct list 两个单词被删掉了。

③删除光标停留的那整行:【dd】

   假设想连续删除多行,则用【4dd】连续删除4行;

④从光标处往前删除词:【db】

    和【dw】的作用方向正好相反。

⑤删除整个单词:【daw】

  仅当光标停留在一个单词开头,【dw】才能删除整个单词,否则只能删除一部分;

  而【daw】不考虑光标的停留位置,只要在该单词上,则会自动删除整个单词;

————————————————————————

点命令【.】含义是重复上次修改,上次修改的单位可以是字符,整行,甚至整个文件。

因此如果删除整行【dd】,配合【.】也可以起到重复操作的目的。

点命令最大的用处在于,每次从输入模式到命令模式切换时,整个阶段vim会记录每一个按键操作,使用点命令可以重新执行所有的这些按键操作,就好像“一键回放”,我们可以把点命令当成一个宏。

比如要给下面的结构体语句添上;号


按照常规方法做会比较慢,这时候光标先移动到第一条语句上,【A】【;】【ESC】

再反复使用【j】【.】即可。


二,简化行光标移动:

① 光标移动到行尾 【&】

② 光标移动到行尾并进入输入模式,类似于【&】【a】:  【A】

③ 光标移动到行尾并回车,再进入输入模式,类似于【&】【enter】【a】: 【o】

     小o的作用类似于新建一空白行;

④ 光标移动到行首【^】

⑤ 光标移动到整个文件头部【gg】

⑥ 光标移动到整个文件尾部【G】


三,简化行内光标移动:

①光标移动到单个字符:【f】,也用于查找。

比如要在本行移动光标至字符*处,直接【f*】即可

第一章 vim中简化删除,光标移动和查找操作_第1张图片

【f*】不能跨行,它无法找到第4条语句*list。

如果一行语句包含多个字符*,不需要重复按【f*】,使用【;】。

撤销回退命令是【,】。

②光标移动到词组:【/】,也用于正向查找。


假设输入/hel,光标会自动移动到包含该字串下一处词组。

该命令能够跨行,要找到下一行的hello,不需要重复输入/hel,使用【n】。

撤销回退命令是【N】。

同理反向移动光标及查找:【?】

③无需输入即可移动光标,查找:【*】

前面两种都需要输入命令,只需要先把光标移动到单词上,按下【*】,相当于执行【/整个单词】,要查找下一个,重复使用【n】。

④ 【w】移动光标到下一个单词开头,【b】移动光标到上一个单词开头,两者均可跨行。


配合点命令【.】以及【*】星命令,就能实现快速的查找并替换。

首先在需要被替换的单词上按【*】,然后【a】修改第一个单词,完成后【ESC】,此时vim已经记住了操作,剩下的就是重复【n】查找下一个,【.】回放操作。

仔细体会vim对重复操作的简化,追求的是一键移动,一键操作修改。


你可能感兴趣的:(vim的进阶使用)