486 words
2 minutes
Vim_learn
在vim insert mode下可以使用的快捷键
| 快捷键 | 说明 |
|---|---|
| Ctrl-j / m | 换行(等同于 Enter) |
| Ctrl-r{register} | 粘贴指定寄存器的内容 |
| Ctrl-r = | 粘贴一个表达式的结果 |
| Ctrl-o | 临时切换到 Normal Mode,执行一个命令后立即返回 Insert Mode |
| Ctrl-[ / Ctrl-c | 退出 Insert Mode(等同于 Esc) |
| Ctrl-h | 删除光标前的一个字符(等同于 Backspace) |
| Ctrl-w | 删除光标前的一个单词 |
| Ctrl-u | 删除光标前到行首的所有字符 |
| Ctrl-a | 插入上次插入模式中插入的文本 |
| Ctrl-x | 插入补全 |
| Ctrl-x Ctrl-l | 补全整行 |
| Ctrl-x Ctrl-f | 补全文件名 | |
| Ctrl-x Ctrl-n | 从当前文件中补全文本 |
| Ctrl-n / Ctrl-p | 自动补全:下一个/上一个匹配项 |
展开折叠的命令
| 命令 | 功能说明 |
|---|---|
| zc | 关闭当前折叠 |
| zo | 展开光标所在的折叠块 |
| zO | 展开光标所在折叠块及其所有子折叠 |
| za | 切换折叠状态 (展开或收起) |
| zR | 展开所有折叠 |
| zM | 收起所有折叠 |
重复执行
| 所在模式 | 命令 |
|---|---|
| 普通模式(命令模式) | . |
| ex模式 | @: |
| 宏 | @@ |
文本组合
- 操作符:
d、y、c - 范围修饰:
i ( inside )、a ( around ) - 对象类型:
w、s、p、[、(、{、"、'、<、t等等。
NOTE光标必须在对象内部或者边界符号上才能正常使用。
撤销与重做
| 命令 | 说明 |
|---|---|
u/:undo | 撤销最近一次修改 |
Ctrl-r/:redo | 重做(恢复被撤销的修改) |
- 行级撤销
U: 撤销当前行的所有修改,恢复到进入该行时的状态。
NOTE
U本身也是修改,可以按u撤销这个U
- 指定撤销点
| 命令 | 说明 |
|---|---|
:undo N | 跳到第N次修改之后的状态 |
:earlier time | 回到time前的状态 |
:earlier 3f | 回到3次文件(file write)写入之前的状态 |
:later {N}{unit} | 与:earlier的操作相反 |
- 撤销树(Undo Tree)
- 使用
:undolist查看撤销历史和分支,再使用:earlier或者:later。
Vim_learn
https://infini.cv/posts/vim_learn/ Some information may be outdated