vim技巧(一)


vim技巧(一)

使用到的vim命令

  • .命令:重复上次修改
  • x命令:删除光标下的字符
  • dd命令:dd 命令也做删除操作,但它会把整行一起删掉
  • u命令:撤销命令
  • >G命令:增加从当前行到文档末尾处的缩进层级
  • $命令:把光标移到行尾
  • a命令:在当前光标之后添加内容
  • A命令:则在当前行的结尾添加内容
  • s命令:把两个操作合并为一个:它先删除光标下的字符,然后进入插入模式
  • f{char}命令:让Vim查找行内下一处指定字符出现的位置,如果找到了,就直接把光标移到那里
  • F{char}命令:让Vim查找行内上一处指定字符出现的位置,如果找到了,就直接把光标移到那里
  • ;命令:带我们到下一个f{char}命令的目标字符上
  • ,命令:会反方向查找上次 f{char}所查找的字符
  • *命令:光标移到单词上,使用*命令对它进行查找,结果一是光标会跳到下一个匹配项上,二是所有出现这个词的地方都会被高亮显示出来。如果你并没有看到高亮,运行一下:set hls
  • c是修改(change)(即删除后进入插入模式),后面可以接一个移动命令。
  • cw命令:c是修改(change)(即删除后进入插入模式),后面可以接一个移动命令。意思是修改光标点到移动终点之间的内容。w是移动到下一个单词。所以 cw 就是把光标位置到下一个单词之前的内容删掉,并进入插入模式。

使用技巧

  • 向每行后添加分号

    var foo = 1
    var bar = 'a'
    var foobar = foo + bar
    • 先得把光标移到行尾,然后切换到插入模式进行修改。$ 命令可以完成移动动作,接着就可以执行 a;<Esc> 完成修改。由于 . 命令可以重复上次的修改,因此我们不必重复之前的操作,而是执行两次 j$.。一个键(.)顶 3 个(a;)。
    • 改进:由于A命令在当前行的结尾添加内容,我们通过用 A 来代替 $a,提升了 . 命令的效率。我们不必再把光标移到行尾,只需保证它位于该行内就行了(可在任意位置)。
  • 在一个字符前后各添加一个空格

    var foo = "method(" + argument1 + "," + argument2 + ")";
    • 使用s命令在删除 + 号后,我们先输入"空格+空格",然后退出插入模式。
    • 我们可以用 . 命令重复这一修改。我们所要做的只是把光标移到下一个 + 号处,然后用 . 命令重复这一操作。
    • 当我们输入f+时,光标会直接移到下一个 + 号所在的位置。完成第一处修改后,我们可以重复按 f+ 命令跳到下一个 + 号所在的位置。
    • 还有一种更好的方法可以用。; 命令会重复查找上次 f 命令所查找的字符,因此我们用不着输入4次 f+,而是只用输入一次,后面跟着再用3次 ; 命令。
  • 回退操作
  • 将文章中的所有my该为you

    If you were a teardrop;In my eye,
    For fear of losing you,I would never cry.
    And if the golden sun,Should cease to shine its light,
    Just one smile from you,Would make my whole world bright.
    • 先使用*命令查找单词"my",然后删除单词“my”,然后输入替代的单词。cw 命令会删除从光标位置到单词结尾间的字符,并进入插入模式,接下来我们就可以输入单词“you”。
    • Vim 会把我们离开插入模式之前的全部按键操作都记录下来,因此整个 cwyou会被当成一个修改。也就是说,执行.命令会删除从光标到当前单词结尾间的字符,并把它修改为“you”。
    • 每次我们按 n 键时,光标就会跳到下一个“my”单词所在之处,而当我们按 . 键时,它就会把光标下的单词改为“you”。

声明:Hello World|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - vim技巧(一)


我的朋友,理论是灰色的,而生活之树是常青的!