命令模式
| 命令 | 功能 |
|---|---|
| u | 撤销 |
| Ctrl+r | 重做 |
| ~ | 当前字符切换大小写 |
| >> | 当前行向右移动一个单位 |
| << | 当前行向左移动一个单位 |
| == | 自动缩进当前行 |
| Ctrl+b | 向下翻页 |
| Ctrl+f | 向上翻页 |
| w | 跳到下一个字首标点或单词分割 |
| W | 跳到下一个字首,长跳 |
| e | 跳到下一个字尾 |
| E | 跳到下一个字尾,长跳 |
| b | 跳到上一个字 |
| B | 跳到上一个字,长跳 |
| 0 | 跳到行首,不管有无缩进,直接跳到行首 |
| ^ | 跳到行首的第一个字符 |
| $ | 跳到行尾 |
| G | 跳到文件末尾 |
| gg | 跳到文件开头 |
| 5gg | 移动至第5行 |
| fa | 当前行中寻找a字符,找到了就移动到a |
| ; | 重复上一个f命令,而不用重复的输入fa |
| * | 查找光标所在处的单词,向下查找 |
| # | 查找光标所在处的单词,向上查找 |
| dd | 删除文件 |
| dw | 删除当前字符到行末,D也可实现 |
| x | 删除当前的字符 |
| X | 删除前一个字符 |
| dG | 删除此行开始到文件末尾的所有行,包括此行 |
| gg=G | 自动排版,缩进等 |
| a | 在当前字符后插入 |
| A | 在行尾插入 |
| i | 在当前位置插入 |
| I | 在行首插入 |
| o | 在下一行插入 |
| O | 在上一行插入 |
| s | 删除当前字符并进入编辑模式 |
| S | 删除光标所在的行并进入编辑模式 |
| yy | 复制当前的行,Y也可实现 |
| yw | 复制当前的字段 |
| ggyG | 全部复制 |
| ggvG | 全选(高亮显示) |
| p | 粘贴复制的内容 |
| /abc | 向后搜索字符串abc |
| ?abc | 向前搜索字符串abc |
| \c | 忽略字母大小写,如/abc\c |
| \C | 大小写敏感 |
| n | 下一个匹配 |
| N | 上一个匹配 |
多文件编辑
| 命令 | 功能 |
|---|---|
| vim file1 file2… | 同时打开多个文件 |
| vim -O file1 file2 … | 垂直分屏 |
| vim -o file1 file2… | 水平分屏 |
末行模式
| 命令 | 功能 |
|---|---|
| :args | 显示当前编辑的文件 |
| :next | 切换到下一个文件 前面加w是保存切换,加!是不保存切换 |
| :prev | 切换到上一个文件 |
| :first | 定位首文件 |
| :last | 定位尾文件 |
| ctrl+^ | 快速在最近的两个文件切换 |
| :close | 关闭当前窗口 |
| :only | 只显示当前窗口,关闭所有窗口 |
| :all | 打开所有窗口 |
| :vertical all | 垂直打开所有窗口 |
| :qall | 对所有窗口执行q操作 |
| :qall! | 对所有窗口执行q!操作 w操作同理 |
| ctrl+w k,j,h,l,t,b | 跳转到上、下、左、右、最上、最下的窗口 |
| :%s/old/new/g | 搜索整个文件,把old换成new |