我发现 vscode 几乎每个操作都有对应的命令,可以绑定到键上,而且when
表达式更是强大,可以让相同的键绑定在不同的界面中拥有不同的功能,比如a
在编辑器界面是在当前字符后插入的意思,在文件浏览器界面就可以是新建文件的意思,大大增加了可用性。
只需要极其简单的设置,vscode 的键绑定就可以和 neovim 大佬们精心调配的一样好用,有了这个还用啥 neovim ,跟完全看不懂的 lua 说拜拜吧!
下面是我正在使用的键绑定设置,主要参考对象是AstroNvim,但并不完全一样,比如在 AstroNvim 里,代码动作的键绑定是<leader>la
,vscode 里自带了ctrl+.
,我觉得 vscode 自带的这个就很好用,所以就不改了。
下文中的
<leader>
键指的是空格键
gd
gr
gi
<leader>lf
<leader>lr
K
ctrl+.
vscode 自带ctrl+shift+m
vscode 自带<leader>ff
<leader>fw
ctrl+l
ctrl+f
vscode 自带<leader>w
<leader>c
<leader>q
H
L
ctrl+h
ctrl+l
<leader>gc
<leader>e
ctrl+b
vscode 自带j
k
o
或 enter
O
a
A
d
y
x
p
r
R
要应用这些键绑定只需要两个 json 文件,都是 vscode 自带的,一个是settings.json
,另一个是keybindings.json
。
在 vscode 里按ctrl+shift+p
,搜索打开用户设置
,选中首选项:打开用户设置 (JSON)
,就会打开settings.json
文件。
在 vscode 里按ctrl+shift+p
,搜索打开键盘快捷方式
,选中首选项:打开键盘快捷方式 (JSON)
,就会打开keybindings.json
文件。
在做代码跳转或切换标签页等操作时,我们都是在编辑器界面的 vim 插件里,所以这些键绑定由 vim 插件管理,配置写在settings.json
里。
而在文件浏览器界面或搜索结果界面时,我们不是在 vim 插件里,vim 就管不了这里了,这些键绑定由 vscode 自身管理,配置写在keybindings.json
里。
你可以将我提供的 json 文件里的内容手动复制出来,手动粘贴到你自己的配置文件里,一保存,好用的键绑定立刻就拥有了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.