普通模式
用vi file刚进入时就是命令模式
移动光标:hjkl左下上右
H(最上) L(最下) M(中间行) 【当前屏】
G(最后一行) nG gg(第一行)
选择文本:v字符选择 V行选择
复制:yy nyy yw y$
粘贴:p
删除:dd(删除一行) dw(删除一个单词) ndd D(删除光标本行后的所有文本) %d(删除全部) x(删除字符)
删除的部分其实也保留在暂存区,同样可以用p粘贴回来,这就实现了剪切功能
撤销:u取消、U恢复
滚动屏幕:ctrl+d 向下半屏、ctrl+u向上半屏
插入模式
键入以下命令可以进入插入模式,按esc键可以退出插入模式
a:当前位置的右边
A:行尾
i:当前位置
I:行首
o:下一行
O:上一行
底行模式
在普通模式下键入“:”分号即可进入底行模式
显示配置
显示行号:set [no]nu
颜色开启:syntax enable
查询结果高亮显示:set [no]hlsearch
操作命令
查找:/string
?string
n相同顺序,N相反顺序
替换:[n1,n2] [%]s/oldstring/newstring/g[c]
1, $:一行到最后一行
n1, +n:包括n1的后n行
n2, -n:包括n1的前n行
保存:w [文件名]
退出:q
保存并退出:wq
不保存,强制退出:q!
特殊命令
把命令返回结果写入到光标下一行:r !cmd
将r1到r2行的区间输入命令,并且命令结果替换输入文本:r1,r2 !cmd
将r1到r2行的区间输入命令,但不会替换原文本:r1,r2 w !cmd