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命令:末行模式下! +命令