键位映射:建议使用jj代替esc,毕竟esc离手那么远
"vim.insertModeKeyBindings": [
{
"before":["j","j"],
"after":["<Esc>"]
}
]
一般我们遇到的单词不会出现连续两个j,如何输入两个j,那只能输入一个再等一会再输入了,实在不行改,你改,改成jk
普通模式下的映射功能:
键位 | 功能 | 快速记忆 |
---|
i | 字符前插入 | insert |
I | 行首插入 | 大写字符一般对应小写字母的功能稍微改变 |
o | 上一行插入 | |
O | 下一行插入 | |
a | 字符后插入 | |
A | 行尾插入 | |
h | 向左 | |
j | 向下 | |
k | 向上 | |
l | 向右 | |
w | 跳到下一个单词开头 | word |
b | 跳到本单词或上一个单词开头 | begin |
e | 跳到本单词尾或下一个单词尾 | end |
ge | 跳到上一个单词的结尾 | |
0 | 跳到行首 | |
^ | 跳到从行首开始第一个非空字符 | |
$ | 跳到行尾 | |
gg | 跳到第一行 | |
G | 跳到最后一行 | |
f加一个字符 | 光标跳到同一行的下一个该字符上 | |
F加一个字符 | 光标跳到同一行的上一个该字符上 | |
t加一个字符 | 光标跳到下一个该字符的前一个字符位置上 | f,F和t,T的主要区别在于t是跳到字符前的 |
T加一个字符 | 光标跳到上一个该字符的后一个字符都位置上 | |
; | 执行上一次查找操作 | |
, | 反向查找上一次的查找指令 | 反向是如何上次是t那么该次是T |
yy | 复制改行 | |
y1G | 复制所在行到1行的所有数据 | |
nyy | 复制向下数n行 | |
yG | 复制光标所在行包括未尾所有数据 | |
p,P | 向下一行粘贴和向上一行粘贴 | |
dd | 删除该行 | |
d1G | 删除该行到第一行 | |
dG | 删除改行到行尾 | |
dw | 删除光标后的单词 | |
daw | 删除光标所在的单词 | |
J | 将光标所在行与下一行的数据合成一行 | |
x,X | 向后或向前删除一个字符 | |
nx | 向后删除n个字符 | |
n+回车 | 向下移动n行 | |
nG | 移动到第n行 | |
M | 移动到当前屏幕中央位置 | |
L | 移动到当前屏幕最低行 | |
G | 移动到文件最后一行 | |
u | 还原过去操作 | |
Ctrl+r | 重复上一个操作 | |
. | 重复前一个操作 | |
命令模式
按键 | 效果 |
---|
:w | 保存写入内容 |
:w! | 强制保存 |
:q | 退出vim,不保存 |
:wq | 保存并退出 |
:w [file name] | 另存到filename |
:set nu | 文件每行设置行号 |
:set nonu | 取消设置的行号 |
:n,m w [filename] | 将n到m另存为filename |
:! command | 暂时离开vim,使用enter返回 |
visual模式
键位 | 功能 | 快速记忆 |
---|
i+"或者(等等 | 比如该单词在(word) 中,会选中word | |
iw | 选中该单词 | |
a+"或者( | 选中包括”或者( | |
aw | 选中包括单词前空格 | |