文本编辑
i # 在光标前插入
I # 在当前行首插入
a # 在光标后插入
A # 在当前行尾插入
o # 在当前行之下新开一行
O # 在当前行之上新开一行
r # 替换当前字符(replace,按下r之后,光标不动,输入一个字符直接替换)
R # 替换当前字符及其后的字符,直至按ESC键(按下R后,输入的字符会依次替换后续字符)
查找、替换
/pattern # pattern(样式)指代的是要查找的内容,将向后查找与指定内容匹配的第一样式
/ # 重复上一次查找,在文件中查找下一个匹配样式
?pattern # pattern(样式)指代的是要查找的内容,将向前查找与指定内容匹配的第一样式
? # 重复上一次查找,在文件中查找与上一次查找内容匹配的样式
% # 把当前光标移至匹配的圆括号或方括号(对程序员来说,该命令非常有用)
:s/pattern1/pattern2 # 用pattern2替换当前行中与pattern1匹配的每个内容
:%s/pattern1/pattern2 # 用pattern2替换整个文件中与pattern1匹配的每个内容
文件操作
ZZ # 保存对当前文件的更改,然后退出vi
:wq # 保存对当前文件的更改,然后退出vi(同ZZ)
:w # 保存对当前文件的更改
:w! # 保存对当前文件的更改,如果有同名文件存在的话,就改写它
:q # 退出vi(如果有未保存的更改,vi将发出抱怨,并"拒绝"退出)
:q! # 退出vi,即使还有尚未保存的更改。所有未保存的更改将被丢失
:e filename # 把指定文件载入vi进行编辑,如果指定文件不存在,将创建一个新文件
:e! # 丢失所有更改,并从硬盘中重载已保存的文件(reload)
滚动屏幕
Ctrl+u # 向上滚动半屏(up)
Ctrl+d # 向下滚动半屏(down)
Ctrl+f # 向前滚动全屏(forward)
Ctrl+b # 向后滚动全屏(backward)
Ctrl+e # 向下滚动一行(想不出了)
Ctrl+y # 向上滚动一行(同样想不出)
常用命令
:set nu # 显示行号
dd # 删除当前行
d1G # 删除从光标所在行开始,到第一行的所有行
dG # 删除从光标所在行开始,到最后一行的所有行
yy # 复制当前行
y1G # 复制从光标所在行开始,到第一行的所有行
yG # 复制从光标所在行开始,到最后一行的所有行
p # 粘贴
r # 替换所选
cc # 替换当前行
u # 撤销
Ctrl+r # 重做上一个操作
/任意内容 # 查找命令
n # 向下查找
N # 向上查找