很多人推荐用 im-select ,但是我发现只有在插入模式是中文时,进入命令模式才会切换到英文;或者在命令模式是英文时,进入插入模式切换到中文;而在命令模式下是中文时,必须手动切到英文输入法,才能进入插入模式。
我只需要实现第三种切换,应该如何做到?
补充:我是用 macOS 。
1
keakon OP 找到一个不算完美的解决办法:换用 vscode-neovim ,安装 brglng/vim-im-select 插件。
这样在从其他应用切换到 vscode 时,如果是命令模式,会切换到英文。 并且在文件间切换时不会修改模式,所以也不会切换中英文。 极端情况是在 vscode 的命令模式下手动切换到中文,再切换到其他文件还是中文。而多窗口下每个窗口的模式可能不相同,这有时候也会引起一些问题。 |
2
lihexinkai 277 天前
|
3
keakon OP @lihexinkai 可惜不用鼠须管,忘了啥原因放弃了,好像是因为词库和词频
|
4
xujiahui 276 天前
我是用的鼠须管
|
5
stimw 276 天前
|
6
wzwwzw 270 天前
我的解决办法是
每当我按下 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" } ] } |