键位映射:建议使用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 | 选中包括单词前空格 | |