
image.png
- Normal 模式下
- 所有的命令都需要在Normal模式下使用
- 在VIM的Normal模式下,所有的键就是功能键了
- 以 : 开始的命令你需要输入 <enter>回车
- 如果是 Ctrl-λ我会写成 <C-λ>
常用操作
- 打开退出
| 指令 | 功能 |
|---|---|
| vim fileName | 打开或者创建文件 |
| i | Insert 模式,按 ESC 回到 Normal 模式 |
| :wq | (write + quit)存盘 + 退出 (:w 存盘,:q 退出,:w 后可以跟文件名) |
| :w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关 |
| :q | 离开 vim |
| :q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案 |
- 编辑
| 指令 | 功能 |
|---|---|
| x | 删当前光标所在的一个字符 |
| dd | (delete)删除当前行,并把删除的行存到剪贴板里 |
| 方向键(或 hjkl) | 移动光标 |
| Home / End(或 0 / $) | 移动光标至开头 / 末尾 |
| : N | 到第N行 |
| gg | 到第一行 |
| G | 到最后一行 |
| w | 到下一个单词的开头。 |
| e | 到下一个单词的结尾 |
| % | 匹配括号移动(你需要把光标先移到括号上) |
| * 和 # | 匹配光标当前所在的单词(*是下一个,#是上一个) |
| p / P | 粘贴在当前位置之后 / 当前位置之前 |
| yy | 拷贝当前行当行 |
| ye | 从当前位置拷贝到本单词的最后一个字符 |
| u / <C-r> | 撤销(undo)/ 重做(redo) |
| v | 可视化的选择 |
| a | 在光标后插入 |
| o | 在当前行后插入一个新行 |
| O | 在当前行前插入一个新行 |
| cw | 替换从光标所在位置后到一个单词结尾的字符 |
- 查找替换
| 指令 | 功能 |
|---|---|
| /word | 向光标之下寻找一个名称为 word 的字符串 |
| ?word | 向光标之上寻找一个字符串名称为 word 的字符串 |
| n / N | n 查找下一个,按下N查找上一个 |
| * | 查找光标所在单词 |
| :{作用范围}s/{目标}/{替换}/{替换标志} | :%s/foo/bar/g 会在全局范围(%)查找foo并替换为bar,:s/foo/bar/g 当前行替换 |