Open huqifj opened 1 year ago
在关闭输入法自动切换功能后 有这个问题吗
在关闭输入法自动切换功能后 有这个问题吗
使用 "vim.autoSwitchInputMethod.enable": true,
就会有问题,关掉就没问题
我的配置如下:
使用 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}",
C:/Portable/im-select/im-select.exe {im} && C:/Portable/im-select/im-select.exe 2052
为什么这么复杂
还有Windows的路径分隔符不应该是反斜杠吗
C:/Portable/im-select/im-select.exe {im} && C:/Portable/im-select/im-select.exe 2052
为什么这么复杂
因为 im-select.exe 无法切换一个输入法的中英文,只能切换不同输入法。
我用的输入法是微软拼音,我这么写是让它切到其它输入法再切回微软拼音(默认英文)。
还有 Windows 的路径分隔符不应该是反斜杠吗
这个斜杠用法在配置文件 settings.json 里是正确的
在 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
在最新的 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
系统:Windows 11。
不确定是 VS Code 还是 im-select.exe / im-select-mspy.exe 的问题。
以 cw 命令为例:
当前现象:
图示:https://imgse.com/i/7y2Fte
期望: