vim模式介绍
几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过CTRL键和ALT键组成)或者鼠标输入。从vi衍生出来的Vim具有多种模式,用户可以不用菜单或者鼠标,仅仅通过键盘在这些模式之间切换,并且最小化组合键的操作。熟练使用vim可大大增强文字工作者或者程序员的效率。
1.普通模式(Normal mode)
在普通模式中,用的是编辑器的命令,如移动光标、删除文本等。vim启动后的默认模式即为普通模式。
vim强大的编辑能力就是来自于普通模式命令,普通模式命令往往需要一个操作符结尾。例如普通模式命令dd
表示删除当前行,但d
+移动命令就表示不同的意义,如dj
就可以删除当前行和下一行,其他移动命令组合读者可自行尝试。另外命令结合数字可以指定命令重复执行的次数,如2dd
等。
-
光标移动
普通模式下,用户可以使用方向键或者h
,j
,k
,l
键移动光标。
按键 | 说明 |
---|---|
h |
左移 |
j |
右移 |
k |
下移 |
l |
上移 |
w |
移动到下一个单词 |
b |
移动到上一个单词 |
-
模式切换
vim启动默认进入普通模式,处于插入模式或命令模式时,只需要按Esc
或者Ctrl+[
即可进入普通模式。普通模式中按i
(插入)或a
(附加)键都可以进入插入模式。普通模式中按:
进入命令行模式。命令行模式中输入wq
+回车后保存并退出vim。
-
文档保存
从普通模式输入:
进入命令模式,输入w
回车即可保存文档,输入:w <filename>
可以将文档另存为其他文件名或保存到其它路径下。
-
删除文本
进入普通模式,使用下列命令可以进行文本快速删除:
命令 | 说明 |
---|---|
x |
删除光标所在位置字符 |
X |
删除光标所在前一位置字符 |
Delete |
同x
|
dd |
删除整行 |
dw |
删除当前位置往后一个单词 |
d$ 或D
|
删除至行尾 |
d^ |
删除至行首 |
dG |
删除至文档结尾 |
d1G |
删除至文档首部 |
2dd |
删除2行 |
-
退出vim
从普通模式下输入:
进入命令行模式,输入wq
回车即可保存并退出编辑,其他几种退出方式如下:
命令 | 说明 |
---|---|
:q! |
强制退出,不保存 |
:q |
退出,不保存 |
:wq! |
强制退出并保存 |
:w <filepath> |
另存为 |
:saveas <filepath> |
另存为 |
:x |
保存并退出 |
:wq |
保存并退出 |
Shift+zz |
保存并退出 |
2.插入模式(Insert mode)
在这个模式中,大多数按键都会向文本缓冲中插入文本。在插入模式中,可以按ESC
键回到普通模式。在普通模式下,可以使用下面的键进入插入模式:
命令 | 说明 |
---|---|
i |
在当前光标处插入 |
I |
在行首插入 |
A |
在行尾插入 |
a |
在当前光标后插入 |
o |
在当前行后插入新行 |
O |
在当前行前插入新行 |
cw |
替换从光标处开始的单词并进入插入模式 |
3.可视模式(Visual mode)
这个模式与普通模式比较相似,但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上,vim的“文本对象”也能和移动命令一样用在这个模式。
4.选择模式(Select mode)
这个模式和无模式编辑器的行为比较相似,在这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
5.命令行模式(Command mode)
在命令行模式中可以输入会被解释并执行的文本,例如:执行命令(:
),搜索(/
和?
)或者过滤命令(!
)。在命令执行后,vim返回到命令行模式之前的模式,通常是普通模式。
6.Ex模式(Ex mode)
Ex模式和命令行模式比较相似,在使用:visual
命令离开Ex模式前,可以一次执行多条命令。
Ex模式功能非常强大,可以详细学习