V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
keakon
V2EX  ›  Visual Studio Code

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

  •  
  •   keakon ·
    keakon · 285 天前 · 1221 次点击
    这是一个创建于 285 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    补充:我是用 macOS 。

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

    缺点是碰到 Bob 这种 dock 栏不显示的窗口就会鬼畜。所以我现在一直没用过。
    wzwwzw
        6
    wzwwzw  
       278 天前
    我的解决办法是
    每当我按下 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
        7
    keakon  
    OP
       278 天前
    @xujiahui 我也换到鼠须管了,但是它的 vim 模式是切换到自己的英文模式,我还是习惯切到 ABC 输入法,所以没有启用。
    @stimw 这个不错,还能设置某些窗口不显示,就是不知道啥时候会收费。
    @wzwwzw 这个我设置了,但是需求不一样,我希望能从其他应用切到 VSCode 时,如果是命令模式,就改成英文。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1230 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.