怎么理解Vim以及怎么学

这是我对知乎上一个问题的回答,原题是:Vim 约等于记事本吗?

最近看了linux的C编程书和vim用法 感觉vim和记事本似乎没多大区别 相对IDE缺少:代码自动补全,debug时查看所有变量值 等功能 平常编写一个自己的电脑可以运行的程序,加了适当插件的vim和VS应该差不多吧?

下面是我的回答。

题主真的看完了 Vim 手册么?

====== 很2的分割线 ======

Vim 并不适合所有人用。如果你已经习惯了 VS 或者其它 IDE,并且觉得它们就是神级工具,那么不必尝试 Vim。

Vim 是给 Vimer 用的,是给熟悉或者认同 Unix哲学 的人用的。

不要被网上那些 编辑器之神神之编辑器 之争的文章刺激得热血沸腾就跑来学习 Vim。如果你工作在 Windows 上,很少接触类 Unix 操作系统,不了解 Unix哲学,或者对 Unix哲学 之说感到不屑,那么趁早放弃。

Vim 并不适合所有场合,很多时候,你还是依然需要 Xcode、Eclipse、IntelliJ IDEA 和 VS,没必要让 Vim 做所有的事情。

虽然我知道 VS 也能当记事本,但我从来不敢这么用。

你现在只能把 Vim 当记事本来用,但不代表 Vim 就是记事本。是的,约等于也不是。

====== 分割线之2 ======

(如有雷同,实属巧合)

选择和放弃:

  1. 看手册;
  2. 手册看一半(或几章),开始用;
  3. 记快捷键,不用鼠标,坚持用;
  4. 理解 Vim 到底是给什么人用的,适合我么?
  5. 一个月后,还是想用鼠标,放弃 Vim;
  6. 过了半年(或几个月),期间无数次思念 Vim;
  7. 重新启用 Vim;
  8. 再次放弃 Vim……
  9. 循环3次以上……

入门:

  1. 看完手册;
  2. 折腾各种配置;
  3. 寻找各种插件;
  4. 配置各种插件;
  5. 试图把 Vim 配置成 IDE;
  6. 经常会在任何可以输入文本的地方 JKILdd……

入魔:

  1. 删除各种插件;
  2. 自己写插件;
  3. 改别人的插件;
  4. 开始把以前用 sed 和 awk 写的功能改成 vimscript;
  5. 试图在任何可以编辑文本的地方使用 Vim;
  6. 开始不习惯各种 IDE 和编辑器;
  7. 开始在各种 IDE 甚至浏览器中寻找并安装 Vim 插件。

回归正常:

  1. 删除各种 IDE 中的 Vim 插件;
  2. shell 配置成 vi 模式;
  3. 在其它 IDE 中不会再莫名其妙 ggG 或者 y$;
  4. 感觉 VS 和 Xcode 还是蛮好用的嘛;
  5. 继续使用 Vim……