VIM常用命令

一. 移动:

h,j,k,l: 左,下,上,右。
w: 下一个词的词首。
e:下一个词的词尾。
b:上一个词的词首。
<>: v 模式选中后进行缩进。

二. 跳转:

%: 可以匹配{},"",(),[]之间跳转。
H、M、L:直接跳转到当前屏幕的顶部、中部、底部。
#H:跳转到当前屏的第#行。
#L:跳转到当前屏的倒数第#行。
zt: 当前编辑行置为屏顶。
zz: 当前编辑行置为屏中。
zb: 当前编辑行置为屏底。
G:直接跳转到文件的底部。
gg: 跳转到文件首。
():跳转到当前的行首、行尾。
{}:向上、向下跳转到最近的空行。
[{:跳转到目前区块开头。
]}:跳转到目前区块结尾。
0: 跳转到行首。
$: 跳转到行尾。
2$: 跳转到下一行的行尾。
#:跳转到该行的第#个位置。
#G: 15G,跳转到15行。
:#:跳转到#行。
f'n':跳转到下一个"n"字母后。
ctrl+b: 向后翻一页。
ctrl+f:向前翻一页。
ctrl+u: 向后翻半页。
ctrl+d: 向前翻半页。
ctrl+e: 下滚一行。

三. 选择:

V: 选择一行。
^V: 矩形选择。
v3w: 选择三个字符。

四. 编辑:

1. 新增:

i: 光标前插入。
I: 在当前行首插入。
a: 光标后插入。
A: 当前行尾插入。
O: 在当前行之前插入新行。
o: 在当前行之后插入新行。

2. 修改 c(change) 为主:

r: 替换光标所在处的字符。
R:替换光标所到之处的字符。
cw: 更改光标所在处的字到字尾处。
c#w: c3w 修改3个字符。
C:修改到行尾。
ci':修改配对标点符号中的文本内容。
di':删除配对标点符号中的文本内容。
yi':复制配对标点符号中的文本内容。
vi':选中配对标点符号中的文本内容。
s:替换当前一个光标所处字符。
#S:删除 # 行,并以新文本代替。

3. 删除 d(delete) 为主:

D:删除到行尾。
X: 每按一次,删除光标所在位置的前面一个字符。
x: 每按一次,删除光标所在位置的后面一个字符。
#x: 删除光标所在位置后面6个字符。
d^: 删至行首。
d$: 删至行尾。
dd:(剪切)删除光标所在行。        
dw: 删除一个单词/光标之后的单词剩余部分。
d4w: 删除4个word。
#dd: 从光标所在行开始删除#行。
daB: 删除{}及其内的内容。
diB: 删除{}中的内容。
n1,n2 d:将n1,n2行之间的内容删除。

4. 查找:

/: 输入关键字,发现不是要找的,直接在按n,向后查找直到找到为止。
?: 输入关键字,发现不是要找的,直接在按n,向前查找直到找到为止。
*: 在当前页向后查找同一字。
#: 在当前页向前查找同一字。

5. 复制 y(yank)为主:

yw: 将光标所在之处到字尾的字符复制到缓冲区中。
#yw: 复制#个字到缓冲区。
Y:相当于yy, 复制整行。
#yy:表示复制从光标所在的该行往下数#行文字。
p: 粘贴。所有与y相关的操作必用p来结合粘贴。
n1,n2 co n3:复制第n1行到第n2行之间的内容到第n3行后面。

6. 大小写转换:

gUU: 将当前行的字母改为大写。
guu: 将当前行的字母改为小写。
gUw: 将当前光标下的单词改为大写。
guw: 将当前光标下的单词改为小写。

a. 整篇大写:ggguG

gg: 光标到文件第一个字符。
gu: 把选择范围全部小写。
G: 到文件结束。

b. 整篇小写:gggUG

7. 其它:

J:当前行和下一行合并成一行。

8. 移动:

n1,n2 m n3:将n1行到n2行之间的内容移至n3行下。

五.退出:

w filename: 保存正在编辑的文件filename
wq filename: 保存后退出正在编辑的文件filename
q:退出不保存。

六.窗口操作:

ctrl+w p: 在两个分割窗口之间来回切换。
ctrl+w j: 跳到下面的分割窗
ctrl+w h: 跳到左边的分割窗。
ctrl+w k: 跳到上面的分割窗。
ctrl+w l: 跳到右边的分割窗。