Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是ViIMitation,随着功能的不断增加,正式名称改成了ViIMproved。现在是在开放源代码方式下发行的自由软件。
Vim具有6种基本模式
普通模式
在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
Vim强大的编辑能力来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令"dd"删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个"d",比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,"2dd"(重复"dd"两次),和"dj"的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是"i"(insert/插入)键。
插入模式
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是"i"(insert/插入)键。
在插入模式中,可以按ESC键回到普通模式。
可视模式
这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的"文本对象"也能和移动命令一样用在这个模式中。
选择模式
这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
命令行模式
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(":"键),搜索("/"和"?"键)或者过滤命令("!"键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
Ex模式
这和命令行模式比较相似,在使用":visual"命令离开Ex模式前,可以一次执行多条命令。
以下为常见的功能键
1. x→ 删当前光标所在的一个字符。
2. :wq→ 存盘 + 退出 (:w存盘,:q退出) (注::w 后可以跟文件名)
3. dd→ 删除当前行,并把删除的行存到剪贴板里
4. p→ 粘贴剪贴板
5. hjkl(功能类似移动光标) →你也可以使用光标键 (←↓↑→). 注:j就像下箭头。
6. :help → 显示相关命令的帮助。你也可以就输入:help而不跟命令。(注:退出帮助需要输入:q)
7. a→ 在光标后插入
8. o→ 在当前行后插入一个新行
9. O→ 在当前行前插入一个新行
10. cw→ 替换从光标所在位置后到一个单词结尾的字符
11. 0→ 数字零,到行头
12. ^→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
13. $→ 到本行行尾
14. /pattern→ 搜索pattern的字符串(注:如果搜索出多个匹配,可按n键到下一个)
15. P→ 粘贴
16. yy→ 拷贝当前行
17. :w→ 存盘
18. :saveas → 另存为
19. :x,ZZ或:wq→ 保存并退出 (:x表示仅在需要时保存,ZZ不需要输入冒号并回车)
20. :q!→ 退出不保存:qa!强行退出所有的正在编辑的文件,就算别的文件有更改。
21. :bn和:bp→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。