介绍
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vim有很多种模式,需要使用者按照自己的需求进行切换,一般我们要用到的模式有三个:正常模式、插入模式、命令行模式。它们之间是如何切换的如图:
正常模式
正常模式是刚进入文件时所处的模式,在这个模式中,对文件的内容进行阅读、删除、复制、查找等
阅读即光标移动
| 按键 | 操作 |
|---|---|
| j/k | 上/下 |
| h/l: | 左/右 |
删除
| 按键 | 操作 | 备注 |
|---|---|---|
dd |
删除本行 | - |
d + [数字n] + j/k/h/l |
删除上n行/下n行/左n个字符/右n个字符 | 如:d2j:删除上2行,不写数字的话默认为1 |
复制
复制和删除操作一样,不过,复制操作用的是y键。
查找
| 按键 | 操作 |
|---|---|
| /关键词 | 向后查找 |
| ?关键词 | 向前查找 |
对查找结果的操作
n: 上一个结果
N: 下一个结果
注意这里是根据查找方向而定的上下。
插入模式
进入插入模式的按键有很多个,在不同的场景中使用不同的按键,可以提高工作效率。
| 按键 | 操作 |
|---|---|
a/A |
在光标后 / 本行最后开始编辑 |
i/I |
在光标前 / 本行开头开始编辑 |
o/O |
在光标下 / 上行新开一行并开始编辑 |
c/C |
删除并开始编辑(详细见下面说明) |
r/R |
替换一个字 / 一直替换(类似insert键) |
s/S |
删除光标所在的字 / 行并开始编辑 |
c与C
个人认为c的删除并插入功能在实际使用中经常用到,而且可以大大提高编辑的效率。
- 与光标移动键结合:c2l或ck或cw或cb (前面没有写w等移动光标的键,可以到补充的那张图中看看)
- 与i结合(i有in的意思):ciw (删除光标所在的词并插入)、ci“ (删除光标所在的引号中的内容并插入)
命令行模式
| 按键 | 操作 | 备注 |
|---|---|---|
:w |
将编辑的数据写入硬盘档案 | 常用 |
:w! |
若文件属性为『只读』时,强制写入该档案 | 能否写入跟该档案的档案权限有关 |
:q |
离开 vim | 常用 |
:q! |
强制离开不储存 | - |
:wq |
储存后离开 | 常用 |
:wq! |
强制储存后离开 | - |
ZZ |
保存并退出 | 这是大写的 Z 喔 |
ZQ |
不保存,强制退出 | 效果等同于 :q! |
:w [filename] |
将编辑的数据储存成另一个档案(类似另存新档) | - |
:r [filename] |
在编辑的数据中,读入另一个档案的数据 | 即将 『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] |
将 n1 到 n2 的内容储存成 filename 这个档案。 | - |
:! command |
暂时离开 vi 到指令行模式下执行 command 的显示结果 | 如:! ls /home |
补充
vim还有可视(Visual)、选择(Select)、Ex模式需要查找更多的资料学习。
如:
更多按键的说明如下图所示: