Vim 总结(二)

来源:互联网 发布:姓名贴软件下载 编辑:程序博客网 时间:2024/05/16 09:27

声明: 本人通过《Vim实用技巧》总结此系列博客

Vim - 普通模式

     在其他编辑器进行文本编辑的时候,我们大部分时间都处在类似于Vim的编辑模式中,所以在Vim中,把normal mode 作为默认模式看上去很奇怪,但是要清楚,正是因为命令,才使得我们在Vim下的编辑工作变得格外轻松。
     在普通模式下,我们有很多方便的命令,甚至有些命令可以被设置执行的次数。普通模式命令的强大,很大程度上是因为它可以把操作符和动作命令结合在一起。

x 命令

     在Vim中,x用来进行单个字符的删除,我想在我们程序员眼里,字符自然是不止a,b,c,d...的,是的,Vim 中除了不能删除行之外,可以删除任何出现在你当前文本中的字符。

U 命令(shift + u)

     在Vim中,U 命令会触发撤销,它会撤销最新的修改。一次修改可以使改变文档内文本的任何操作,包括在普通模式、可视模式以及命令行模式中所触发的命令。
     需要注意的是! 在Vim中,从插入模式开始,到返回普通模式为止,这个动作区间内,我们所做的任何操作,都被记为一次修改。也就是说,在我们处于普通模式下,按下 i 进入编辑模式后,在下一次按 ESC 进入普通模式之前做的所有操作,可以理解成一个单元块,在进行 U 命令操作时,主要是以单元块为一次操作目标。所以,书中作者给的建议是: 尽量以一次思考作为对应一次“可撤销块”,也就是,我们的一次思考对应的输入最好夹在一对 i - ESC 之间。

Vim 下的光标移动

     Vim编辑器中,我们可以有两种方式移动我们的光标:
          1. 我们可以在编辑模式下,用上下左右键移动我们的光标,就像经常使用的编辑器那样;
          2. Vim 特别方式! 我们可以在普通模式下使用 h, j, k, l 来移动光标。h : 向左 j : 向下 k : 向上 l : 向右。说实话,刚开始真的会很不习惯,但是熟悉了以后,简直欲罢不能!因为实在是太好用了!我现在用的编辑器,比如 Eclipse,Intellji 全家桶,没有 Vim 插件简直内心爆炸,普通的编辑器真心比不过 Vim 。

组合键技能 : 操作符 + 动作命令 = 操作

     Vim 的强大很大程度上源自于操作符和动作命令的结合。接下来我们来学习一些 操作符 + 动作命令 的神奇操作。
     在进入学习前,我们先了解下什么叫操作符待决模式: Vim中普通、插入以及可视模式很容易辨识。但是,Vim中还有一个特别的模式,叫做操作符待决模式!在我们按下操作符后, 会有一段时间用于让我们决定我们接下来要进行什么操作 ,d 的操作符我们可以理解为 delete,也就是说我们按下 d 操作符后,接下来提供一个动作命令,让我们具体完成某一个操作。

以 d 开头的组合键技能

     d --> ? (意为 先按 d 再按 后面的键,在解释中,简单用d?代替)

d --> d 命令 : 删除当前行

     在Vim中,普通模式下,dd 命令(双击d),可以删除当前行,并且把光标移至当前行上一行的行首,并且保持普通模式的状态。

d --> b 命令 : 反向删除一个单词

     比如我们有这样一句话,sherlock black,而我的英文名应该是 sherlock blaze (请忽略掉SB本质),编辑模式下,我们的光标在 k 后,在我们按下 ESC 进入普通模式后,光标会出现在 k 上,这个时候,我们通过 db 命令,会反向删除一个单词,但是这个方法有一个小 Bug ,就是我们在反向删除一个单词的操作后,会有这样的结果, sherlock k ,black 的最后一个字母 k 并没有被删除,需要再按一次 x 删除。

b --> dw(cw) 命令 : 正向删除一个单词

  1. 神奇的 b 命令

     在Vim普通模式中,我们可以通过 b 命令去到光标所处单词的开头处。

  1. d(c) --> w 命令 : 完成删除操作

     在通过 b 命令让光标到目标单词头位置后,再通过 dw 命令完成删除操作,并且让光标向前回退一格。而 cw 和 dw 的主要区别在于 cw 命令会在完成删除操作后进入编辑模式并且光标不会回退。

d --> aw 命令 : 删除整个单词

     其实总是各种操作把光标移来移去然后再弄什么反向删除/正向删除,真心是很麻烦的事情,我更偏爱 daw 命令,因为它可以删除掉目前光标所在的单词,不管你的光标是在单词头,单词尾或是在单词中任何一个字符上,都可以非常迅速的删除掉整个单词。

次数 + 命令

     作者在书中建议, 能够重复的操作,就尽量不要使用次数的方式。 我在这里把这句话贴出来,尽管目前我还是会更偏向用次数来进行重复的操作。后面我会通过某一命令,然后具体的列出跟次数搭配使用的效果。并不进行完整的盘点。
     上面的例子,比如说 dw(cw) 命令,我们可以通过 次数 + dw(cw)的方式,执行指定次数次的删除操作。比如 |sherlock blaze loves basketball(| 代表光标位置)。这个时候我们在普通模式下输入如下命令 : 2dw ,原句则会变为 loves basketball
     这里我还是要强调一下原书作者的建议: 只在必要时实用次数。 大部分情况下,我们的确可以通过 . 命令来重复我们上一次的操作。

一段小总结

     在上面的盘点中,我们介绍了一下以操作符 d 开头的操作,搭配上不同的动作命令,实现不同的操作。我们有 dd , daw , db , 我们还有 dl 删除一个字符, dap 删除整个字段的操作。当然,我们也可以自定义一些操作键。我会有个博客用来讲自定义操作键的方法,并在后面在本博文上贴上链接,就是现在这个位置预留(千万别点)。OK,这篇博文就介绍到这里,后面还会有一系列博文详细的总结Vim的使用。说句实话,到后面,我根本不想用什么notepad++,sublime了,Vim才是王道(个人感觉)。
     同时,欢迎大家到我的个人博客做客,依然在装修中: 博客地址

原创粉丝点击