如何让 VSCodeVim 在命令模式下自动切换到英文?

264 天前
 keakon

很多人推荐用 im-select ,但是我发现只有在插入模式是中文时,进入命令模式才会切换到英文;或者在命令模式是英文时,进入插入模式切换到中文;而在命令模式下是中文时,必须手动切到英文输入法,才能进入插入模式。

我只需要实现第三种切换,应该如何做到?

补充:我是用 macOS 。

1185 次点击
所在节点    Visual Studio Code
7 条回复
keakon
264 天前
找到一个不算完美的解决办法:换用 vscode-neovim ,安装 brglng/vim-im-select 插件。
这样在从其他应用切换到 vscode 时,如果是命令模式,会切换到英文。
并且在文件间切换时不会修改模式,所以也不会切换中英文。
极端情况是在 vscode 的命令模式下手动切换到中文,再切换到其他文件还是中文。而多窗口下每个窗口的模式可能不相同,这有时候也会引起一些问题。
lihexinkai
264 天前
keakon
264 天前
@lihexinkai 可惜不用鼠须管,忘了啥原因放弃了,好像是因为词库和词频
xujiahui
264 天前
我是用的鼠须管
stimw
264 天前
https://inputsource.pro/

缺点是碰到 Bob 这种 dock 栏不显示的窗口就会鬼畜。所以我现在一直没用过。
wzwwzw
257 天前
我的解决办法是
每当我按下 esc 或者 ctrl +C 的时候,自动将输入法切换为英文
这里给出我的 mac karabiner 的 json

{
"description": "on escape press, send spacebar with control if not in english",
"manipulators": [
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_unless"
}
],
"from": {
"key_code": "escape",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "escape"
},
{
"key_code": "spacebar",
"modifiers": [
"left_control"
]
}
],
"type": "basic"
}
]
}

{
"description": "on <ctrl>-c press, send spacebar with control if not in english",
"manipulators": [
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_unless"
}
],
"from": {
"key_code": "c",
"modifiers": {
"mandatory": [
"left_control"
]
}
},
"to": [
{
"key_code": "escape"
},
{
"key_code": "spacebar",
"modifiers": [
"left_control"
]
}
],
"type": "basic"
}
]
}
keakon
257 天前
@xujiahui 我也换到鼠须管了,但是它的 vim 模式是切换到自己的英文模式,我还是习惯切到 ABC 输入法,所以没有启用。
@stimw 这个不错,还能设置某些窗口不显示,就是不知道啥时候会收费。
@wzwwzw 这个我设置了,但是需求不一样,我希望能从其他应用切到 VSCode 时,如果是命令模式,就改成英文。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1017482

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX