Vim cheatsheet
光标移动
1 | //按字符移动: |
自动补全
vim 在插入模式下具有自动补全功能:
关键字补全
使用Ctrl-N或Ctrl-P键,将按照complete选项指定的范围来搜索匹配的关键字。其默认值为:
1 | :set complete=.,w,b,u,t,i |
也就是说,默认将在以下来源中查找关键字:
- 在当前缓冲区中进行查找;
- 在其他窗口中进行查找;
- 在其他已载入的缓冲区中进行查找;
- 在没有载入缓冲区的文件中进行查找;
- 在当前的标签(tags)列表进行查找;
- 在由当前文件(如#include)包含进来的头文件中进行查找。
complete 的所有 key 值为:
value | description |
---|---|
. | 当前缓冲区 |
b | 缓冲区列表中的其它已载入的缓冲区 |
d | 当前文件以及由include 选项指定的包含进来的文件查找由define 选项定义的宏(definition/macro) |
i | 当前文件以及由include 选项指定的包含进来的文件 |
k | 由dictionary 选项指定的文件 |
kspell | 当前激活的拼写检查 |
k{dict} | 名为{dict}的文件 |
s | 由thesaurus 选项指定的文件 |
t or ] | 标签(tags)文件 |
u | 缓冲区列表中的没有载入的缓冲区 |
w | 在其他窗口中载入的文件 |
^X模式(Ctrl-X Mode)
在插入模式下,输入Ctrl-X将进入^X模式(插入和替换模式的一个子模式)。屏幕底部将显示以下提示信息:
1 | -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) |
可以选择以下自动补全方式:
Ctrl-] | 标签(tags)补全 |
---|---|
Ctrl-D | 定义补全 |
Ctrl-E | 向上滚动文本 |
Ctrl-F | 文件名补全 |
Ctrl-I | 当前文件以及包含进来的文件补全 |
Ctrl-K | 字典补全 |
Ctrl-L | 整行补全 |
Ctrl-N | 当前文件内的关键字补全,向下选择匹配项 |
Ctrl-O | 全能补全 |
Ctrl-P | 当前文件内的关键字补全,向上选择匹配项 |
Ctrl-S | 拼写建议补全 |
Ctrl-U | 用户自定义补全 |
Ctrl-V | Vim命令补全 |
Ctrl-Y | 向下滚动文本 |
https://yyq123.github.io/learn-vim/learn-vi-80-02-AutoCompletion-Detail.html#compl-tag
补全弹出菜单(popupmenu-completion)
- 使用Ctrl-N和Ctrl-P上下移动时,输入的文本也会随之变化。
- 使用
和 上下移动时,输入的文字并不会变化。 - 使用
和 键,可以在菜单中翻页。 - 使用Ctrl-Y或Enter回车键,将使用当前匹配项完成补全。
- 使用Ctrl-E键,将关闭菜单并退回到文字输入的原始状态。
- 使用Esc键,将关闭弹出菜单,但会保留之前应用的匹配项。
使用:h popupmenu-keys
命令,可以查看关于弹出菜单快捷键的帮助信息。
宏
录制
在 normal 模式下,输入
1 | q[reg] |
进入宏录制状态,此时左下角会显示 recoding 状态。其中[reg]表示寄存器名,在 vim 中可以有[a-z]26个英文字母名寄存器或[0-9]10个数字名寄存器
要进行的操作录制完成后,输入q
结束录制,宏保存在这个寄存器中
要执行这个宏,只需要在 normal 模式下输入
1 | [n]@[reg] |
其中[n]表示执行的次数,@访问对应寄存器名
修改宏
- 使用命令 “ap 将寄存器a中的命令宏粘贴到当前位置
- 编辑这一行的宏内容,编辑结束后用 0 回到行首
- 使用命令 “ayy 将当前行的内容复制到寄存器a中,达到修改寄存器a宏内容的目的
let 方式修改
也可以直接使用let指令,给寄存器赋值,如
1 | :let @a="0iSystem.out.println(^[A);^[" |
注:^[
表示Esc
窗口与文件
1 | //打开文件 |
窗口分割
1 | //查看目录并打开文件 |
vim配置
vim的配置文件vimrc
的位置可以通过在vim中输入::version
查看
参考:
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.