vim 命令

原文:https://www.cnblogs.com/mondol/p/vi-examples.html

保存与退出

w # 保存当前文件
w /tmp1 # 另存为/tmp1
x 或 wq # 保存退出
q # 没有修改的情况下退出vi
q! # 退出不保存

插入

i # 在光标前
I # 在当前行首
a # 光标后
A # 在当前行尾
o # 在当前行之下新开一行
O # 在当前行之上新开一行

删除

d0 # 删至行首  (d零)
dw # 删至行尾
ndd # 删除当前行及其后n-1行
x 或 X # 删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u # 删除输入方式下所输入的文本
n1,n2 d # 将n1行到n2行之间的内容删除

导航

h # 光标左移一个字符
l # 光标右移一个字符
space # 光标右移一个字符
Backspace # 光标左移一个字符
k # 光标上移一行
j # 光标下移一行
Enter # 光标下移一行

屏幕滚动

Ctrl+u # 向文件首翻半屏  up
Ctrl+d # 向文件尾翻半屏 down
Ctrl+f # 向文件尾翻一屏 forward
Ctrl+b # 向文件首翻一屏 back
nz # 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部

复制粘贴 

yy # 复制当前行
nyy # 复制当前行开始的n行
先按 v 然后方向键选择区域,按 y 复制选中行
dd # 剪切当前行
p(小) # 在当前光标处下面粘贴内容。
P(大) # 在当前光标处上面粘贴内容

搜索

/abc # 从光标开始处向文件尾搜索abc
?abc # 从光标开始处向文件首搜索abc
//abc # 从光标开始处向文件尾搜索/abc,其中/是转义
n # 在同一方向重复上一次搜索命令
N # 在反方向上重复上一次搜索命令

替换

s/vivian/sky/ # 替换当前行第一个 vivian 为 sky
s/vivian/sky/g # 替换当前行所有 vivian 为 sky
%s/vivian/sky/g # (等同于 g/vivian/s//sky/) 替换每一行的每一个 vivian 为 sky