我觉得学习 Vim 要像学习一门语言一样,需要大量的实践和长期的积累才能用的顺手。

资料

下面是我认为一些比较优质的 Vim 学习资料,供你参考。

  1. 简明 VIM 练级攻略
  2. 给想学习 VIM 的超级小白的文章
  3. Vim Cheat Sheet
  4. VIM CHEATSHEET (中文速查表)
  5. Interactive Vim Tutorial
  6. Vim 实用技巧(第2版)

实用技巧

这一部分是我在阅读「Vim 实用技巧」的笔记。

  1. 作者如是说:

    传统观点认为,Vim 的学习曲线很陡,但我相信绝大多数Vim用户对此不以为然。

    这句话我不是很认同,现在还是觉得很陡峭,难道在更深入的了解之后就会有改变?

  2. 我发现学习 Vim 和其他东西一样,没有什么灵丹妙药。
  3. *查找光标下的单词。
  4. >G命令会增加从当前行到文档末尾处的缩进层级。
  5. 每次进入插入模式时,会形成一次修改,可以用.来重复。
  6. 那么如何将插入内容和移动一起作为一次修改呢?执行一系列修改qx{changes}q
  7. 如果在插入模式中使用<Up><Down><Left><Right>这些光标键,将会产生一个新的撤销块。
  8. 让每个「可撤销块」对应一次思考过程。如果认为已经走错了方向,就会切换到普通模式,然后按u撤销。
  9. <Ca><Cx>命令分别对数字执行加和减操作。
  10. 注释命令以gc{motIon}触发,gcc则注释当前行。
  11. 专业打字员会建议先删除整个单词,然后再重新输入一遍。
  12. <Ch>删除前一个字符(同退格键),<Cw>删除前一个单词,<Cu>删至行首。
  13. zz命令可以重绘屏幕,并把当前行显示在窗口正中,这样就能够阅读当前行之上及之下的半屏内容。
  14. r{char}gr{char}命令允许覆盖一个字符,之后马上又回到普通模式。
  15. <Cg>可以在可视模式及选择模式间切换。
  16. gv重选上次的高亮选区。
  17. 在可视模式使用U命令来把所选中的字符转换为大写。。
  18. 注意区分:!ls:ls的不同之处。前者调用的是shell中的ls命令,而:ls调用的是Vim的内置命令,用来显示缓冲区列表的内容。
  19. 可以执行Vim的:shell命令来启动一个交互的shell会话,另外一种做法是可以用:read!{cmd}命令,把{cmd}命令的输出读入当前缓冲区中。