gg: 移动到文件头
G : 移动到文件末尾
0 : 移动到本行第一个字符上
^ : 移动到本行第一个非空白字符上
$ : 移动到本行行尾 (3$移动到下面3行行尾)
w : 移动到下一个单词首部(3w移动到往后第三个单词的首部)
e : 同w,差别: 光标停留在单词尾部
b : 移动到上一个单词首部(3b移动到往前第三个单词的首部)
h : 左移一个字符(10h左移十个字符)
l : 右移一个字符(10l右移十个字符)
k : 上移一个字符(10k上移十个字符)
j : 下移一个字符(10j下移十个字符)
:num : 跳到指定行(如 :20,跳到20行)
Ctrl + e : 向下滚动一行
Ctrl + y : 向上滚动一行
Ctrl + d : 向下滚动半屏
Ctrl + u : 向上滚动半屏
Ctrl + f : 向下滚动一屏
Ctrl + b : 向上滚动一屏
v : 逐字选取,按d后剪切,按y后复制
V : 逐行选取,按d后剪切,按y后复制
x : 剪切或删除当前字符(3x删除三个字符)
dl: 删除当前字符(==x)
dh: 删除前一个字符
dj: 删除上一行
dk: 删除下一行
D : 删除当前字符到行尾
d$: 删除当前字符至行尾(==D)
J : 删除两行之间空行,合并两行
dgg: 删除当前行之前的所有行,不包括当前行
yy: 拷贝当前行(nyy拷贝当前后开始的n行)
dd: 剪切和删除当前行
nyy : 复制当前行及后面的n-1行
ndd : 剪切当前行及后面的n-1行
:1,10y : 将1-10行复制
:1,10d : 将1-10行剪切或删除
:1,$d : 删除第一行以后所有行,包括第一行
:1,10 co 10 : 将第1-10行复制到20行后
:1,$ co $ : 将整个文件复制一份到文件尾部
:1,10 m 20 : 将第1-10行移动到第20行后
ddp : 交换当前行和下一行(剪切一行后粘贴)
xp : 交换当前字符和下一字符(剪切当前字符后粘贴)
p : 光标后粘贴
shift + p : 在当前行前粘贴
:split : 打开一个新窗口(== :new)
:split file : 新窗口打开新文件(== :new file)
:3splite : 指定新打开的窗口大小为3
:vsplit : 新窗口打开为纵向
Ctrl + w+ : 增加当前窗口大小
Ctrl + w- : 减小当前窗口大小
2Ctrl+ w_ : 指定窗口大小为2
Ctrl + ww : 移动到下一个窗口
Ctrl + wj : 移动到下方窗口
Ctrl + wk : 移动到上方窗口
:close : 关闭窗口,最后一个窗口不能使用,防止意外退出vim
:q : 关闭窗口,如果是最后一个窗口,则退出vim
ZZ : 保存并退出
:only : 关闭所有窗口,只保留当前窗口
:!command : vim中执行shell命令,不退出vim执行command命令,
并将结果显示在vim的命令区域
:r !command : 将shell命令command的结果插入到当前行的下一行
:行号,行号 !command : 将起始行号和结束行号范围中的内容输入到shell命令中处理,并将处理结果替换行号与行号之间的内容(如 :20,40!sort)
:行号,行号 w !command : 与上一命令不同在于:不用结果替换行号与行号之间的内容