你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。
Vim: the Six Billion Dollar editor
Better, Stronger, Faster.
学习Vim并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。
我建议下面这四个步骤:
- 存活
- 感觉良好
- 觉得更好,更强,更快
- 使用VIM的超能力
当你走完这篇文章,你会成为一个vim的 superstar。
在开始学习以前,我需要给你一些警告:
- 学习vim在开始时是痛苦的。
- 需要时间
- 需要不断地练习,就像你学习一个乐器一样。
- 不要期望你能在3天内把vim练得比别的编辑器更有效率。
事实上,你需要2周时间的苦练,而不是3天。
##第一级 – 存活
- 安装Vim
- 启动Vim
- 什么也不干!请先阅读
当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。但vim不是这样的,请按照下面的命令操作:
- 启动Vim后,vim在 Normal 模式下。
- 让我们进入 Insert 模式,请按下键 i 。(你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了)
- 此时,你可以输入文本了,就像你用“记事本”一样。
- 如果你想返回 Normal 模式,请按 ESC 键。
现在,你知道如何在 Insert 和 Normal 模式下切换了。下面是一些命令,可以让你在 Normal 模式下幸存下来(箭头不代表按键):
- i → Insert 模式,按 ESC 回到 Normal 模式.
- x → 删当前光标所在的一个字符。
- :wq → 存盘 + 退出 (:w 存盘, :q 退出) (陈皓注::w 后可以跟文件名)
- dd → 删除当前行,并把删除的行存到剪贴板里
- p → 粘贴剪贴板
推荐:
- hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
- :help
→ 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。(注:退出帮助需要输入:q)
你能在vim幸存下来只需要上述的那5个命令,你就可以编辑文本了,你一定要把这些命令练成一种下意识的状态。于是你就可以开始进阶到第二级了。
当是,在你进入第二级时,需要再说一下 Normal 模式。在一般的编辑器下,当你需要copy一段文字的时候,你需要使用 Ctrl 键,比如:Ctrl-C。也就是说,Ctrl键就好像功能键一样,当你按下了功能键Ctrl后,C就不在是C了,而且就是一个命令或是一个快键键了,在VIM的Normal模式下,所有的键就是功能键了。这个你需要知道。
标记:
- 下面的文字中,如果是 Ctrl-λ我会写成 <C-λ>.
- 以 : 开始的命令你需要输入
回车,例如 — 如果我写成 :q 也就是说你要输入 :q .
##第二级 – 感觉良好
上面的那些命令只能让你存活下来,现在是时候学习一些更多的命令了,下面是我的建议:(注:所有的命令都需要在Normal模式下使用,如果你不知道现在在什么样的模式,你就狂按几次ESC键)
各种插入模式
- a → 在光标后插入
- o → 在当前行后插入一个新行
- O → 在当前行前插入一个新行
- cw → 替换从光标所在位置后到一个单词结尾的字符
简单的移动光标
- 0 → 数字零,到行头
- ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
- $ → 到本行行尾
- g_ → 到本行最后一个不是blank字符的位置。
- /pattern → 搜索 pattern 的字符串(注:如果搜索出多个匹配,可按n键到下一个)
拷贝/粘贴 (注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)
- P → 粘贴
- yy → 拷贝当前行当行于 ddP
Undo/Redo
- u → undo
<C-r>
→ redo
打开/保存/退出/改变文件(Buffer)
- :e <path/to/file> → 打开一个文件
- :w → 存盘
- :saveas <path/to/file> → 另存为 <path/to/file>
- :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
- :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
- :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(注:我喜欢使用:n到下一个文件)
花点时间熟悉一下上面的命令,一旦你掌握他们了,你就几乎可以干其它编辑器都能干的事了。但是到现在为止,你还是觉得使用vim还是有点笨拙,不过没关系,你可以进阶到第三级了。下一篇我们将介绍第三个和第四个阶段。
(注:图片中的U83R 1337指的是德语中的uber leet,合起来就是Super Cool的意思,所以图片中文字指的是Super cool use Vim!)