vim常用的工作模式有:普通模式、插入模式、命令模式,默认为普通模式。
1、插入模式可以通过以下按键进入:
| 按键 | 功能模式 |
|---|
| a | 进入插入模式,后续输入内容将插入至当前光标的后面 |
| A | 进入插入模式,后续输入内容将插入至当前段落的段尾 |
| i | 进入插入模式,后续输入内容将插入至当前光标的前面 |
| I | 进入插入模式,后续输入内容将插入至当前段落的段首 |
| o | 进入插入模式并在当前行的后面创建新的空白行 |
| O | 进入插入模式并在当前行的前面创建新的空白行 |
2、vim光标操作
| 快捷键 | 功能描述 |
|---|
| h | 光标向左移动一位 |
| j | 光标向下移动一行(以回车为换行符) |
| k | 光标向上移动一行 |
| l | 光标向右移动一位 |
| gg | 移动光标至文件行首 |
| G | 移动光标至文件末尾 |
| nG | 移动光标至第n行 |
| ^ | 光标移动至当前行的首字符 |
| $ | 光标移动至当前行的尾字符 |
| fx | 光标移动至当前行的下一个x字符处 |
| Fx | 光标移动至当前行的上一个x字符处 |
| W | 光标向右移动一个单词 |
| nw | 光标向右移动n个单词 |
| b | 光标向左移动一个单词 |
| nb | 光标向左移动n个单词 |
3、vim编辑文档
| 操作快捷键 | 功能描述 |
|---|
| x | 删除光标当前字符 |
| dd | 删除一行 |
| ndd | 删除n行 |
| d$ | 删除光标至行尾的内容 |
| J | 删除换行符,可以将两行合并为一行 |
| u | 撤销上一步操作,可以多次使用 |
| rx | 将光标当前字符替换为x |
| yy | 复制当前行 |
| p | 粘贴至当前行之后 |
| P | 粘贴至当前行之前 |
4、vim查找与替换
在普通模式下输入“/”关键词,实现自上往下的查找功能,可以通过快捷键n跳转至下一个匹配的关键词处,快捷键N将将跳转至上一个匹配的关键词处;通过在普通模式下输入“?”加关键词,可以实现自下往上的查找功能;vim提供了非常好用的替换功能,在普通模式下,输入“:”进入命令模式完成替换命令,如下:
| 指令 功能描述 | |
|---|
| :s/root/admin/ | 将光标当前行中第一个出现的root替换为admin,没有则不替换 |
| :s/root/admin/g | j将光标当前行中所有的root替换为admin |
| :3,5 s/sbin/bin/g | 将第三行至第五行之间的所有sbin替换为bin |
| :% s/nologin/fault/g | 将所有行的nologin都替换为fault |
5、vim保存与退出
| 指令 | 功能描述 |
|---|
| :q! | 不保存并退出 |
| :wq | 保存并退出 |
| :x | 保存并退出 |
| :w | 保存 |
| :w b.txt | 另存为b.txt |
6、vim小技巧
(1)显示行号 :set number 或简写 :set nu
(2)忽略大小写 :set ignorecase
(3)执行shell命令,在使用vim编辑文档过程中,如需要执行shell命令而不想退出vim编辑器,可以通过:!{命令}的方式实现,如:!ls即可。