命令模式
退出VIM
ZZ 保存退出
ZQ 不保存退出
光标跳转
*字符间:
h:左 j:下 k:上 l:右
#chp 跳转# 个指定的字符chp
*单词间:
w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首
#word 跳转# 个单词数
当前页:
H:页首 M:页中间行 L:页底
zt:光标所在行移至屏幕顶端
zz:光标所在行移至屏幕中间
zb:光标所在行移至屏幕底部
*行首行尾:
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
*行间移动:
#G 跳转至第# 行,同末行模式下的:#
G 最后一行
1G,gg 第一行
句间移动:
) 下一句 ( 上一句
} 下一段 { 上一段
字符编辑
x 删除光标处的字符*
#x 删除光标处起始的#个字符*
xp 交换光标处所在处的字符及其后面字符的位置*
~ 转换大小写*
J 删除当前行的换行符
替换命令
r 只替换光标所在处的一个字符
R 切换成REPLACE 模式(在末行出现--REPLACE--提示),按ESC 回到命令模式
删除命令
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾 *
d^ 删除到非空行首,相对行首 *
d0 删除到行首,绝对行首 *
dw 删除单词到行首
de 删除单词行尾
db 删除光标所在处的前一个字符串?
dd 剪切光标所在的行
#dd 删除多行,# 表示数字
D 从当前光标位置一删除到行尾,等同于d$
ps:c 按键跟d 按键功能类似,只不过删除后进入插入模式
复制命令
y 复制命令,
y$ 复制到行尾 *
y^ 复制到非空行首,相对行首 *
y0 复制到行首 *
yw 复制单词到行首
ye 复制单词行尾
yb 复制光标所在处的前一个字符串?
yy 复制光标所在的行
#yy 复制多行,# 表示数字
Y 复制整行
粘帖命令
p 缓冲区存储的如果为整行,则粘帖当前光标所在行的下方,否则,粘帖当前光标所在行的后面
P 缓冲区存储的如果为整行,则粘帖当前光标所在行的上方,否则,粘帖当前光标所在行的前面
查找*
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
撤销更改*
u 撤销最近的更改,相当于windows中的Ctrl+z
#u 撤销之前多次更改
U 撤销光标落在此行后所有此行的更改,换行则相对当前行
Ctrl + r 重做最后的撤销更改,相当于windows中的Ctrl+y
. 重复前一个操作
#. 重复前一个操作# 次
其他用法
<start position><command><end position>
常见Command:
y:复制 d:删除 gU:大写 gu:小写
范例
0y$ :从光标所在行首开始拷贝,拷贝到所在行的最后一个字符
0:起始位置,行头
y:复制
$:行尾
100idawn[ESC] #粘帖“dawn”100次
范例
di" 光标在""之间,则删除""之间的内容 *
yi( 光标在()之间,则复制()之间的内容 *
vi[ 光标在[]之间,则选中[]之间的内容 *
dtx 删除字符直到遇见光标之后的第一个x 字符
ytx 复制字符指导遇见光标之后的第一个x 字符