daipeihust / im-select

📟 Switch your input method through terminal
MIT License
1.01k stars 75 forks source link

启用 autoSwitchInputMethod 后 C/cw 命令无法正常工作 #47

Open huqifj opened 1 year ago

huqifj commented 1 year ago

系统:Windows 11。

不确定是 VS Code 还是 im-select.exe / im-select-mspy.exe 的问题。

以 cw 命令为例:

当前现象:

原始内容(普通模式,光标在数字 3):
1234
  ^

执行 cw 命令:
1|2

输入任意文本,例如 aa:
1aa|2

图示:https://imgse.com/i/7y2Fte

期望:

原始内容(普通模式,光标在数字 3):
1234
  ^

执行 cw 命令:
12|

输入任意文本,例如 aa:
12aa|
daipeihust commented 1 year ago

在关闭输入法自动切换功能后 有这个问题吗

huqifj commented 1 year ago

在关闭输入法自动切换功能后 有这个问题吗

使用 "vim.autoSwitchInputMethod.enable": true, 就会有问题,关掉就没问题

huqifj commented 1 year ago

我的配置如下:

使用 im-select.exe:

    "vim.autoSwitchInputMethod.enable": true,
    "vim.autoSwitchInputMethod.defaultIM": "1033",
    "vim.autoSwitchInputMethod.obtainIMCmd": "C:/Portable/im-select/im-select.exe",
    "vim.autoSwitchInputMethod.switchIMCmd": "C:/Portable/im-select/im-select.exe {im} && C:/Portable/im-select/im-select.exe 2052",

使用 im-select-mspy.exe:

    "vim.autoSwitchInputMethod.enable": true,
    "vim.autoSwitchInputMethod.defaultIM": "英语模式",
    "vim.autoSwitchInputMethod.obtainIMCmd": "C:/Portable/im-select/im-select-mspy.exe",
    "vim.autoSwitchInputMethod.switchIMCmd": "C:/Portable/im-select/im-select-mspy.exe {im}",
daipeihust commented 1 year ago

C:/Portable/im-select/im-select.exe {im} && C:/Portable/im-select/im-select.exe 2052为什么这么复杂

daipeihust commented 1 year ago

还有Windows的路径分隔符不应该是反斜杠吗

huqifj commented 1 year ago

C:/Portable/im-select/im-select.exe {im} && C:/Portable/im-select/im-select.exe 2052 为什么这么复杂

因为 im-select.exe 无法切换一个输入法的中英文,只能切换不同输入法。

我用的输入法是微软拼音,我这么写是让它切到其它输入法再切回微软拼音(默认英文)。

huqifj commented 1 year ago

还有 Windows 的路径分隔符不应该是反斜杠吗

这个斜杠用法在配置文件 settings.json 里是正确的

jinmiaoluo commented 1 year ago

在 vscode 使用 vim extension 且开启:vim.autoSwitchInputMethod.enable 的时候:

更准确的触发时机是光标位于当前行的最后一个字符上(无论中文还是英文),比如:

1234
   ^

然后执行任意 normal mode 中包含:delete and start insert 逻辑的命令,比如:c s 命令,然后输入内容: x

预期的结果:

123x

实际的结果:

12x3

即:此时内容插入的位置相对于预期的位置左移了一个符号

Q: 这个问题在光标位于非最后一个符号的时候存在吗? A: 不存在

Q: 这个问题在输入法都是英文的时候存在吗? A: 不存在

Q: 这个问题在 normal mode 的输入法为英文,insert mode 的输入法是拼音输入法(英文模式)时存在吗? A: 不存在

Q: 这个问题是否只在 VSCode 中存在? A: 这个问题在 JetBrains IDE,VSCode 中都存在。

我在 vscode vim 插件的仓库内也创建了一个类似的 issue,见:https://github.com/VSCodeVim/Vim/issues/8518

jinmiaoluo commented 1 year ago

在最新的 Windows 11 insider 中:

Edition Windows 11 Pro
Version 22H2
Installed on    ‎9/‎19/‎2023
OS build    22621.2359
Experience  Windows Feature Experience Pack 1000.22674.1000.0

这个问题貌似已经修复。

https://github.com/daipeihust/im-select/assets/39730824/c8def574-0fc2-4f9c-b00b-698dff54ecf2