Vi和Vim都是文本编辑器,不同的是Vim是Vi的升级版本,它不仅兼容Vi的所有指令,而且还有一些新的特性在里面。
Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。
Vim/Vi没有菜单,只有命令
Vim/Vi的三种工作模式:

| 命令 | 作用 |
| a(append) | 在光标后附加文本 |
| A | 在本行行末附加文本 |
| i(insert) | 在光标前插入文本 |
| I | 在本行开始插入文本 |
| o | 在光标下插入新行 |
| O | 在光标上插入新行 |
| 命令 | 作用 |
| h、方向左键 | 左移一个字符 |
| j、方向下键 | 下移一行 |
| k、方向上键 | 上移一行 |
| l、方向右键 | 右移一个字符 |
| $ | 移至行尾 |
| 0 | 移至行首 |
| H(High) | 移至屏幕上端 |
| M(Middle) | 移至屏幕中央 |
| L(Low) | 移至屏幕下端 |
| :set nu | 设置行号 |
| :set nonu | 取消行号 |
| gg | 到第一行 |
| G | 到最后一行 |
| nG、:n | 到第n行 |
| 命令 | 作用 |
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后n个字符 |
| dG | 删除光标所在行起到文件末尾的内容 |
| D | 删除从光标所在处到行尾 |
| :n1,n2d | 删除指定范围(n1~n2)的行 |
| 命令 | 作用 |
| yy、Y | 复制当前光标所在行 |
| nyy、nY | 复制当前光标所在行起n行 |
| dd | 剪切当前光标所在行 |
| ndd | 剪切当前光标所在行起n行 |
| p(paste) | 粘贴在当前光标所在行下面 |
| P | 粘贴在当前光标所在行上面 |
| 命令 | 作用 |
| r(replace) | 替换光标所在处字符 |
| R | 从光标所在处开始替换字符,按Esc结束 |
| u(undo) | 撤销上一步操作 |
| 命令 | 作用 |
| /string |
从前向后搜索指定字符串string 按n跳到指定下一个字符串出现的位置 按N跳到指定上一个字符串出现的位置 搜索时忽略大小写:set ic |
| :%s/old/new/g | 全文替换指定字符串(用new替换old) |
| :n1,n2s/old/new/g | 在一定范围(n1~n2)内替换指定字符串 |
| 命令 | 作用 |
| :w | 保存修改 |
| :w new_filename | 另存为指定文件 |
| ZZ、:wq | 保存修改并退出 |
| :q! | 不保存修改退出 |
|
:wq!(只有管理员root或 文件的所有者可以使用) |
保存修改并退出 可忽略文件的只读属性 |
Vim/Vi博大精深,初学者使用会觉得十分复杂,操作效率低下,但当你完全熟悉了它之后,你就会觉得它简直就是个神器,使用它可以极大的提高我们码代码的效率。
这是一个你不需要使用鼠标,不需使用小键盘,只需要使用大键盘就可以完成很多复杂功能文本编辑的编辑器,不然,Visual Studio也不就会有vim的插件了。学习vim就像学弹钢琴一样,一旦学会,受益无穷。
另外这里还有一篇关于Vim比较不错的文章,想要深入学习可以看一看
原文:http://www.cnblogs.com/eniac12/p/4422968.html