VSCode 键盘设置 155a34bff11d46f3afaf37d471055c62
VSCode 键盘设置
VSCODE Vim+easymotion 配置
最近入了 HHKB BT 2 无刻版,使用一周感觉非常爽,薄膜键盘的触感 + 电容键盘的无冲,打字的那一刻,仿佛置身于美墨边境,一边是未知的野蛮,一边是现代的文明,让我第一次体会到了身为程序员的快乐。
但是使用了一周之后,令人不快的地方来了,HHKB 没有方向键,只能用 FN + ;’[/ 替换。这繁琐的操作在敲代码的时候怎么能忍,自然而然的,我想到了大名鼎鼎的可以用 jkhl 替代方向键的 keymap vim。
VSCODE + VIM 配置
首先在 VSCODE 里直接 ⌘K ⌘M,然后左侧点击安装 VIM 插件。恭喜你,你的 vscode 现在已经支持 vim 啦。但仅仅是这样还是不能满足日常编码对于速度的要求,我们还要继续设置一下;
进入 setting.json
增加如下几行
//使用系统粘贴板
"vim.useSystemClipboard": true,//开启 easymotion
"vim.easymotion": true,//相对显示代码行数
"editor.lineNumbers": "relative",//修复光标经过折叠代码时自动展开的 bug
"vim.foldfix": true,//映射空格键为 easymotion Start of word 指令快捷键
"vim.normalModeKeyBindingsNonRecursive": [{
"before": [" "],
"after": ["leader", "leader", "leader", "b", "d", "w"]
}]
再进入 keybindings.json
增加如下几行
C:\Users$Username$\AppData\Roaming\Code\User\keybindings.json
// 将键绑定放在此文件中以覆盖默认值
[
{ //移动到行首
"key": "ctrl+a",
"command": "cursorHome",
"when": "editorFocus && vim.mode == 'Insert'"
},
{ //移动到行尾
"key": "ctrl+s",
"command": "cursorEnd",
"when": "editorFocus && vim.mode == 'Insert'"
},
{ //向左移动
"key": "ctrl+h",
"command": "cursorLeft",
"when": "editorFocus && vim.mode == 'Insert'"
},
{ //向下移动
"key": "ctrl+j",
"command": "cursorDown",
"when": "editorFocus && vim.mode == 'Insert'"
},
{ //向上移动
"key": "ctrl+k",
"command": "cursorUp",
"when": "editorFocus && vim.mode == 'Insert'"
},
{ //向右移动
"key": "ctrl+l",
"command": "cursorRight",
"when": "editorFocus && vim.mode == 'Insert'"
}
]
keybinding 中自定义的意思是,在 vim 的 Insert 模式下,ctrl + [sjkil] 分别对应 跳转到该行代码的末尾(end of line),光标左下上右移动的意思。
设置完了之后,你的 vscode 应该会变成这个样子(注意 linenum 的显示)
下面讲下操作:
往上跳转 n 行: n + k
往下跳转 n 行: n + j
跳转到当前页面的某个词的开头(beginning of word): space + 对应键位
往前跳转到当前光标所在词的开头(不包括其他符号): b
往前跳转到当前光标所在词的连接部分的开头: B
往后跳转到当前光标所在词的结尾: e
往后跳转到当前光标所在词的连接部分的结尾: E
往后跳转到当前光标所在词的下一个词的开头: w
往后跳转到当前光标所在词的连接部分的下一个词的开头: W
normal mode 下在当前光标前方变成 insert mode: i
normal mode 下在当前光标所在行最前方变成 insert mode: I
normal mode 下在当前光标后方变成 insert mode: a
normal mode 下在当前光标所在行最后方变成 insert mode: A
normal mode 下删除当前词并变成 insert mode: cw
normal mode 下删除当前括号,引号中所有内容并变成 insert mode: ci+括号/引号 或者直接 cib
normal mode 下删除至句末: C
insert mode 下切换至 normal mode 并在输入一个指令后变回 insert mode: ctrl + o
翻页:ctrl + d 向下 ctrl + u 向上insert mode 下光标移动: 上文有介绍
(还有很多很多可以自定义的 keymap 或者 值得去发现的快捷键,这里抛砖引玉)
个人觉得最骚的还是快速跳转,再讲一下:
首先快速跳转到指定行,根据之前设置的 linenum 显示方法,可以快速操作
或者,跳转到某个词的开头,直接按 space,你会发现 vscode 会提示你各个词的键位,按下即可(骚不骚
有些人会问,你这么设置有什么用。用处太大了,这样设置之后,写代码的时候两只手移动范围是最小的,效率直接 X1000,简直每天都在高X中度过。
当然你不用 HHKB 用普通键盘也可以。重要的是多练习。