本文归纳vi命令常见用法,随操作系统版本不同,可能有所差异,vi命令还是太过个性化了,编辑键、功能键等几乎都用自己的约定,如果不是长期使用Unix/Linux,根本记不住,每次用每次查,本文只归纳常用几个按键,能vi进入,能vi保存,能vi退出就够用的了。
一、vi打开编辑文件
vi <filePathAndName>
示例:vi test.conf,vi /tmp/test.conf,…
如果指定的filePathAndName存在则会自动载入该文件内容,如果不存在则会自动创建。
注:每行前显示波浪符号的表示该行为空行。
二、vi进入输入模式
vi工作于两种模式:指令模式和输入模式。指令模式是打开文件后的默认模式模式,此时输入任何字符均被视为控制指令。输入模式就是普通的编辑模式,此时输入字符默认为输入内容。
三、vi编辑指令
1、屏幕翻页
- Ctrl+u: 向上翻半屏
- Ctrl+f: 向上翻一屏
- Ctrl+d: 向下翻半屏
- Ctrl+b: 向下翻一屏
2、移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):
- space: 光标右移一个字符
- Backspace: 光标左移一个字符
- Enter: 光标下移一行
- nG: 光标移至第n行首
- n+: 光标下移n行
- n-: 光标上移n行
- n$: 光标移至第n行尾
- 0: 光标移至当前行首
- $: 光标移至当前行尾
3、插入删除指令
常用插入、删除指令如下:
- i:在当前光标前插入,光标后文本向后移
- a:从当前光标后插入,光标后文本后移
- I:在光标所在行首插入(第一个非空白字符前)
- A:从光标所在行末插入
- o: 在光标所在行下面新增一行(并进入输入模式)
- O: 在光标所在行上方新增一行(并进入输入模式)
- x: 删除光标所在字符,等同于[Delete]功能键
- X: 删除光标前字符,相当与[Backspace]
- dd: 删除光标所在的行
- r: 修改光标所在字符
- R: 替换当前字符及其后的字符,直到按 [ESC]
- s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
- S: 删除指定数目的行,并以所输入文本代替之
- do: 删至行首
- d$: 删至行尾
四、vi退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:
- :w ——保存当前文件
- :wq —— 存盘退出(与指令 😡 功能相同)
- :q —— 直接退出,如已修改会提示是否保存
- :q! ——不保存直接退出
更多vi命令:
除了上文罗列指令外,还有搜索及替换命令、内容拷贝命令等命令,有兴趣读者可自行Google搜索。