1. vim的三种模式:命令模式、编辑模式、末行模式
从命令模式→编辑模式:i,a,o,I,A,O
i(光标左侧插入)
a(光标右侧插入)
o(光标所在下一行插入)
I(光标所在行首插入)
A(光标所在行尾插入)
O(光标所在上一行插入)
从编辑模式→命令模式:Esc
从命令模式→末行模式:输入一个冒号,即shift+;
2. 末行模式:
w(保存)
q(退出)
!(强制)
wq、x、命令模式下shift+zz(保存退出)
q!(不保存退出)
3. 移动:
k(上移)
nk(上移n行)
j(下移)
nk(下移n行)
h(左移)
nh(左移n行)
l(右移)
nl(右移n行)
M(光标移动到中间行)
L(光标移动到屏幕最后一行行首)
G(移动到指定行,行号+G)
w(向后一次移动一个字)
b(向前一次移动一个字)
{(按段移动,上移)
}(按段移动,下移)
ctrl+d(向下翻半屏)
ctrl+u(向上翻半屏)
ctrl+f(向下翻一屏)
ctrl+b(向上翻一屏)
gg(光标移动到文件开头)
G(光标移动到文件末尾)
1G(光标移动到第1行)
15G(光标移动到第15行)
vim a.py +22(打开a.py并跳转到22行)
4. 操作:
yy(复制)
nyy(从当前光标所在的行开始复制n行)
p(在光标所在位置向下新开辟一行,粘贴)
dd(剪切)
ndd(从当前光标所在的行开始剪切n行)
u(撤销)
ctrl+r(反撤销)
5. 删除:
x、del(删除光标后一个字符)
X、backspace(删除光标前一个字符)
dd(删除光标所在行)
ndd(删除n行)
D(删除光标后本行所有内容,包括光标所在字符)
d0(删除光标前本行所有内容,不包含光标所在字符)
dw(删除光标开始位置的字,包含光标所在字符)
6. 重复命令:
.(重复上一次操作的命令)
7. 文本行移动:
>>(文本行右移)
<<(文本行左移)
8. 查找替换
r(替换当前字符)
R(替换当前行光标后的字符)
:%s/abc/123/g(末行模式下,将光标所在行的abc替换成123)
:1, 10s/abc/123/g(末行模式下,将第1行至第10行之间的abc替换成123)
/ str(str查找)
n(下一个结果)
N(上一个结果)
9. 分屏
sp(上下分屏,后可跟文件名)
vsp(左右分屏,后可跟文件名)
ctrl+w+w(在多个窗口切换)
vim -On file1 file2 ...(大写O参数垂直分屏)
vim -on file1 file2 ...(大写o参数水平分屏)