rime / weasel

【小狼毫】Rime for Windows
https://rime.im
GNU General Public License v3.0
4.65k stars 555 forks source link

咨询下vim_mode开启时候 切换到插入模式会自动切换成中文输入的问题 #1384

Open plutotree opened 1 month ago

plutotree commented 1 month ago

设置gvim的ascii_modevim_mode为true

gvim.exe:
  ascii_mode: true
  vim_mode: true
  1. 启动gvim.exe,输入法为英文;
  2. 切换insert mode后,输入法为英文;
  3. 按Esc切换为normal mode后,输入法为英文(看状态栏图标会有一次快速切换,即从英->中->英)
  4. 再次切换insert mode后,输入法为中文;

总结下就是除了刚启动之外,每次切换到insert mode,都会自动切换到中文状态,预期是能记住上次状态。

目前vimrck中设置的 set iminsert=2,尝试修改该选项好像也达不到预期的效果

WindyValley commented 1 month ago

是不是新功能跟vim_mode打架了,进入Normal的时候触发输入法开关切到中文,又被vim_mode切到英文,进入Insert模式又切回中文

WindyValley commented 1 month ago

改注册表 HKEY_CURRENT_USER\SOFTWARE\Rime\Weasel ToggleImeOnOpenClose=yes 先还原旧版本的逻辑

WindyValley commented 1 month ago

另外gvim我现在是用的 set iminsert=2 set imcmdline set imsearch=-1 然后没开vim_mode

WindyValley commented 1 month ago

@fxliang 这个开关的行为理论上可以做到用app_options分应用配置嘛?

fxliang commented 1 month ago

@fxliang 这个开关的行为理论上可以做到用app_options分应用配置嘛?

理论上有可能,tsf中持有和ipc Client中一样的app name,然后前后同步的时候将app_options 也同步给客户端,然后在那个隔离仓开关的回调里检查对应处理。只是这样感觉相当麻烦,而且一样可以配出不正常的状态来。基于此,个人不是太看好这个想法。

plutotree commented 1 month ago

另外gvim我现在是用的 set iminsert=2 set imcmdline set imsearch=-1 然后没开vim_mode

这种情况下 普通和插入模式切换,中英文都是符合预期的么? 我以前也是没开vim_mode,印象中也是有问题的

WindyValley commented 1 month ago

另外gvim我现在是用的 set iminsert=2 set imcmdline set imsearch=-1 然后没开vim_mode

这种情况下 普通和插入模式切换,中英文都是符合预期的么? 我以前也是没开vim_mode,印象中也是有问题的

也要改注册表

改注册表 HKEY_CURRENT_USER\SOFTWARE\Rime\Weasel ToggleImeOnOpenClose=yes 先还原旧版本的逻辑