vim分3种模式:命令模式、插入模式、末行模式。
3种模式的转换图如下:
符号 |
含义 |
i |
在光标当前字符前插入内容 |
I |
在光标所在行首插入内容 |
a |
在光标字符后插入内容 |
A |
在光标所在行尾插入内容 |
o |
在光标处向下新开一行并在行首插入内容 |
O |
在光标处向上新开一行并在行首插入内容 |
h |
左移一个字符 |
j |
下移一行 |
k |
上移一行 |
l |
右移一个字符 |
M |
把光标定位在当前屏幕中间行第一字符处 |
L |
把光标定位在当前屏幕最后行第一字符处 |
[行号] +G |
不加行号移动到文件最后一行;加行号移动到指定行 |
[行号] +gg |
不加行号移动第一行行首;加行号移动到指定行 |
w |
向右移动一个字 |
b |
向左移动一个字 |
{ |
按段向上移 |
} |
按段向下移 |
Ctrl+d |
向下翻半页/屏 |
Ctrl+u |
向上翻半页/屏 |
Ctrl+f |
向下翻一页/屏 |
Ctrl+b |
向上翻一页/屏 |
x |
删除光标后的一个字符(相当于del) |
X |
删除光标前的一个字符(相当于Backspace) |
[行数] + yy |
不加行数时复制当前行;加行数时向下复制行数行 |
[次数] + p |
不加次数时默认粘贴一次;加次数时粘贴次数次 |
[行数] + dd + [p] |
不配合p使用时作为向下删除行数行(包括光标所在行,默认删除一行);配合p使用时作为向下剪切行数行 |
. |
重复上次命令 |
u |
撤销 |
Ctrl+r |
反撤销 |
Shift + > |
向右移动一个制表位 |
Shift + < |
向左移动一个制表位 |
D |
删除包括光标处直到本行尾的一段字符 |
d0 |
删除光标前直到本行首的一段字符 |
dw |
删除光标处及以后的一个字(不是所有内容) |
v |
按字符移动并选中文本 |
V |
按行移动并选中文本 |
r |
替换光标处的字符 |
R |
替换光标处及以后的字符 |
/str |
查找,n:查找下一个;N:查找上一个 |
:%s/abc/123/g |
将符合条件的abc替换成123 |
:sp 文件名 |
新打开一个文件并上下分屏,如果待打开的文件不存在则为新增 |
:vsp 文件名 |
新打开一个文件并左右分屏,如果待打开的文件不存在则为新增 |
:w 文件名 |
另存为。如果继续编辑文件,则编辑的是原文件,而不是另存为的文件 |
Ctrl+w+w |
窗口切换/把光标移动到下一个屏 |
Ctrl+w+c |
关闭当前窗口,如果只剩下最后一个窗口,则不能继续关闭 |
Ctrl+w+q |
关闭当前窗口,如果只剩下最后一个窗口,则退出vim |
Ctrl+w+s |
上下分割当前打开的文件 |
Ctrl+w+v |
左右分割当前打开的文件 |
Ctrl+w+(h/j/k/l) |
把光标移动到左/下/上/右屏 |
Ctrl+w+(H/J/K/L) |
把光标所有在屏左/右/下/上移 |
Ctrl+w++/-/= |
增加/减少/等于屏的高度 |
Ctrl+w+[n]>/< |
向左/右加屏的宽度 |
Vim编辑器有4种退出模式:
1:末行模式下:x
2:末行模式下:wq 保存并且退出
3:末行模式下:q! 不保存并强制退出
4:命令模式下:保存并且退出 Shift + zz
注意:Vim执行 Shell命令:末行模式下! +命令