| 模式名 | 含义 |
|---|---|
| 命令模式 | 等待输入的模式 |
| 输入模式 | 编辑模式,用于输入文本 |
| 底行(尾行、末行)模式 | 可以输入指令,搜索,保存 |

vi 文件名可以进入这个模式| 命令 | 含义 |
|---|---|
| vim 文件名 | 打开文件定位到第一行 |
| vim + 文件名 | 打开文件定位到最后一行 |
| vim +2 文件名 | 打开文件定位到第三行,如果没有这么多行定位到最后一行 |
| 命令 | 含义 |
|---|---|
| :w | 把写入保存到硬盘中 |
| :q | 退出当前VI编辑器打开的文件 |
| :wq! | 强制保存 |
| :数字 | 快速当位到当前文件的第几行 |
| /xxx | 从光标位置开始向后搜索 xxx 字符串 |
| ?xxx | 从光标位置开始向前搜索 |
| 命令 | 含义 |
|---|---|
| h | 光标左移 |
| j | 光标下移 |
| k | 光标上移 |
| l | 光标右移 |
| 命令 | 含义 |
|---|---|
| ctrl+f | 向下翻页 |
| ctrl+b | 向上翻页 |
| ctrl+d | 向下翻半页 |
| ctrl+u | 向上翻半页 |
| 命令 | 含义 |
|---|---|
| i | 在当前位置插入 |
| a | 在当前光标右边插入 |
| A | 在当前光标右的行末插入文件 |
| o | 在光标所在行的下方插入一行并切换到输入模式 |
| O | 在光标所在行的上方插入一行并切换到输入模式 |
| s | 删除当前光标位置并插入 |
| 命令 | 含义 |
|---|---|
| x | 删除当前字符 |
| dw | 从当前光标当前位置直到单字/单字末尾,包括空格 |
| de | 从当前光标当前位置直到单字/单字末尾,但是不包括空格 |
| d$ | 从当前光标当前位置删除到当前行末 |
| 命令 | 含义 |
|---|---|
| dd | 删除光标所在行 |
| 2dd | 删除光标2行 |
| 命令 | 含义 |
|---|---|
| u | 撤消最后执行的一次命令 |
| U | 恢复该行的原始状态 |
| CTRL-R | 恢复重做命令 |
| 命令 | 含义 |
|---|---|
| dd | 删除光标所在行 |
| yy | 复制光标所在的行 |
| p | 在光标所在行的下方粘贴 |
| P | 在光标所在行的上方粘贴 |
| 命令 | 含义 |
|---|---|
| r | 替换当前位置字符 |
| cw | 修改单词 |
| c$ | 修改当前位置到行尾 |
| 命令 | 含义 |
|---|---|
| CTRL-g | 显示当前编辑文件中当前光标所在行位置以及文件状态信息 |
| SHIFT-G | 当前光标跳到文件中的文件最后一行 |
| number SHIFT-G | 先输入数字再按SHIFT+G则当前光标跳到文件中的文件对应数字的行 |
| 命令 | 含义 |
|---|---|
| / | 输入/可以在当前的文件中查找该字符串 |
| n | 查找下一个 |
| Shift-N | 查找上一个 |
| ? | 逆向查找字符串 |
| shift+% | 可以将光标移动到匹配的括号上 |
| shift+$ | 可以将光标移动到行尾 |
| 命令 | 含义 |
|---|---|
| :s/old/new | 把光标所在行的old替换成new |
| :s/old/new/g | 把所有行的old替换成new |

