问题描述
一直在用 Atom 做主力编辑器,主要是以颜值为首要参考的我,基本看不上其他的编辑器,直到我尝试了 VS Code。在此之前我一直以为 VS Code 是 Visual Studio 的 macOS 版,超级重量的 IDE,用来写 C++ 什么的。后来女朋友说她们公司居然用 Windows 开发前端,大家都用 VS Code,我才知道,哦这可能是个编辑器。于是受不了越来越慢的 Atom 的我,开始尝试了 VS Code,不得不说,相对于 Atom,优点是有过之而无不及。
说了一堆,还是说问题吧。习惯了 Atom 键位的我,上来就安装了 Code 推荐的 Atom Keymap 扩展,主题也换成了 Atom One Dark Pro,所以现在在写这篇文章还会恍惚我是不是在用 Atom。然而,我发现在中文输入法的状态下有些快捷键会失效。比如⌘ + /
,是切换注释,中文输入法的状态下木有任何反应,甚至⌘ + ,
也是按不出来偏好设置的。
踩坑过程
于是我打开快捷键设置,找到了注释快捷键的配置,切换到中文输入法,发现它特喵的消失了。我问了一下别人有没有遇到这个问题,居然木有人遇到!然而我发现他们都是用搜狗输入法的,只有我在用 macOS 自带的中文输入法,基本可以断定问题出在了输入法上。
于是我想,那我设定⌘ + ,
作为注释的快捷键可以吗?用中文的逗号,看起来很美好,然而 Code 提醒我当前键盘布局下按不出来这个快捷键,不让我设置。“键盘布局”这个词,确实提醒了我,我猜想搜狗输入法应该还是英文布局的,而自带中文输入法可能是用了所谓的中文键盘布局,导致了这一现象。由此我也不得不吐槽 Apple 的自作聪明,尤其是中文输入法下的斜杠(Slash),居然是全角的,哪里有场合会需要全角的 Slash 啊。
然而知道了这一点,又能怎样呢,换输入法?反正我搜了半天没找到资料,只好打算屈服于第三方输入法,搜狗我都安装好了。用了半天,觉得确实不难用,但还是想保持手机电脑都用原生输入法的“好(e)习(qu)惯(wei)”。而且,为什么 Atom 就可以做到呢?或者说其他应用都可以呢?我给自己建了个 TODO:解决这个问题。
不是很优雅的解决方案
最后在官方文档中找到了相关的资料,如果写死了⌘ + /
,在不同的键盘布局下可能按的键不同,甚至按不出来。而有一种办法就是可以让所有的布局都是按 Slash 这个键。那就是⌘ + [Slash]
,这种写法,可以理解成无视键盘布局,总之,可以完美支持原生的中文输入法了。
于是我就把几乎所有布局相关的快捷键都再另设置了一套,可参考我的 Gist,目前还没找到更优雅的方案。
我本来想,官方应该要提供一个 API,或者设置项,可以将所有这种快捷键都设置成布局无关的,然而没找到…… 如果有人有更好的方案,欢迎私戳,给我指条明路~
2018.10.12 更新
新版本 Code 已经支持了两种映射模式的切换功能,即不再需要我手动 hack 了。