vi是Linux下默认的编辑器,有两种工作模式:命令模式和文本输入模式

  • 命令模式:输入的字符被解释为vi命令,文本模式切换至命令械:esc键

  • 文本输入模式:输入的字符为可编辑的文本,命令模式切换至文本模式:i

1.打开文件的命令选项--7

序号vi使用的选项说明
1vi filename打开或者新建一个文件,并将光标置于第一行的首部
2vi -r filename恢复上次vi打开时崩溃的文件(-要加上)
3vi -R filename把指定的文件以只读方式放入编辑器中
4vi + filename打开文件,并将光标置于第n行的首部(+号要加,并且前后是空格)
5vi +n filename打开文件,并将光标置于第n行的首部
6vi +/pattern filename打开文件,并将光标置于第一个与pattern匹配的位置
7vi -c command filename在对文件编辑前,先执行指定的命令

2.移动光标类命令--18--命令模式下

序号按键或字符说明
1h/Backspace键光标左移一个字符
2l光标右移一个字符
3k/Ctrl+p光标上移一个字符
4j/Ctrl+n光标下移一个字符
5Enter键下移一行
6w/W右移一个字到字首
7b/B左移一个字到字首
8e/E右移一个字到字尾
9nG移动到第n行首部
10n+光标下移n行
11n-光标上移n行
12n$基于当前所在行,再向后移动n行至行尾
13H移动至当前 屏幕的顶行
14M移动至当前屏幕的中间行
15L移动到当前屏幕的最底行
160移动光标至当前行首(注意是数字0)
17$光标移至当前行尾
18:$光标移动至文件最后一行的行首

3.屏幕翻滚类命令--命令模式

序号按键或字符说明
1ctrl+u基于当前屏幕,向文件首翻半屏
2ctrl+d基于当前屏幕,向文件尾翻半屏
3ctrl+b基于当前屏幕,向文件首翻一屏
4ctrl+f基于当前屏幕,向文件尾翻一屏
5nz+Enter将文件的第n行滚至屏幕顶部,如果不指定n,将当前行滚至顶部

4.插入与删除文本类命令--12--命令模式

序号按键或字符说明
1Esc键返回命令行模式
2i在光标前输入文字/进入文本编辑模式
3a光标后输入文字
4o当前行之下,新开一行
5O当前行之上,新开一行
6r替换光标所在字符,输入r命令后,输入新字符即可
7x替换光标所在的字符
8dd删除光标所在的行,删除后的内容保存在剪贴板
9yy将光标所在行复制到剪贴板,前面加数字,可复制多行
10p将剪贴板内容复制到光标后
11P将剪贴板内容复制到光标前
12yw将光档所在的单词复制到剪贴板

5.搜索及替换类命令--8----命令行模式

序号按键或字符说明
1/abc在文件中向前查找字符串abc
2?abc在文件中向后查找字符串abc
3n在同一方几重复上次的搜索命令
4N在相反方向重复上次的搜索命令
5:s/a1/a2/g将当前光标所在行中的所有a1均用a2替换
6:n1,n2s/a1/a2/g将文件文件第n1行至n2行中所有a1均用a2替换
7:g/a1/a2/g将文件中所有的a1均用a2替换
8:set nu给文件的每行加上行号

6.保存与退出类--8---命令行模式

序号按键或字符说明
1:wq保存并退出vi
2:wq!不保存,强制退出
3:q不保存,退出
4:q!不保存,强制退出
5:w保存不退出
6:w!强制保存
7:w filename相当于另存为名为filename的文件
8x!保存文件并退出,更常用