vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved)。
命令vi编辑器支持:编辑模式和命令模式。编辑模式下可以完成文本的编辑功能;命令模式下可以完成对文件的操作命令。要正确使用vi编辑器就必须熟练掌握着两种模式的切换:
默认情况下,打开vi编辑器后自动进入命令模式:从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键;从编辑模式切换到命令模式使用“esc”键。切换模式如下:
- 翻页命令:
Ctrl+u: 向文件首翻半屏;
Ctrl+d: 向文件尾翻半屏;
Ctrl+f: 向文件尾翻一屏;
Ctrl+b: 向文件首翻一屏;
- 切换行:
:行号: 光标跳转到指定行的行首;
:$: 光标跳转到最后一行的行首;
- 删除/剪切/粘贴
x或X: 删除一个字符,x删除光标后的,而X删除光标前的;
D: 删除从当前光标到光标所在行尾的全部字符;
dd: 删除光标行正行内容;
ndd: 删除当前行及其后n-1行;
nyy: 将当前行及其下n行的内容保存到寄存器中,其中为一个字母,n为一个数字;
p: 粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P: 粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
- 查找
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
- 替换
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
样例一:将1到10行的/etc/conf替换为 uu
错误: :1,10s//etc/conf/uu/g
正确::1,10s#/etc/conf#uu#g
正确::1,10s/\/etc\/conf/uu/g
样例二:将的aa替换为 uu
正确:1,$s/aa/uu/g 【关于参数g,若有参数g则一行有多个aa全部替换,无参数g则只替换每行第一个】
- 插入
a: 在当前字符后添加文本;
A: 在行末添加文本;
i: 在当前字符前插入文本;
I: 在行首插入文本;
o: 在当前行后面插入一空行;
O: 在当前行前面插入一空行;
- 保存
:wq: 在命令模式下,执行存盘退出操作;
:w: 在命令模式下,执行存盘操作;
:w!: 在命令模式下,执行强制存盘操作;
:q: 在命令模式下,执行退出vi操作;
:q!: 在命令模式下,执行强制退出vi操作;
- 设置与取消行号
:set nu: 在命令模式下,用于在最左端显示行号;
:set nonu: 在命令模式下,用于在最左端不显示行号;