Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

vim下按Esc输入法状态切换问题 #159

Open
huo-feng-ding opened this issue Oct 15, 2024 · 5 comments
Open

vim下按Esc输入法状态切换问题 #159

huo-feng-ding opened this issue Oct 15, 2024 · 5 comments

Comments

@huo-feng-ding
Copy link

不好意思,最近刚用上Rime,问题比较多,请见谅。

 app_options:
    vim.exe:
      ascii_mode: true
      vim_mode: true

我配置了vim_mode后, 在vim软件里,进入插入模式时,使用中文输入法,此时打的字还未上屏,我想按 Esc 键进行清屏,操作的结果是清屏了,同时还将输入法切换成英文输入法。

正常想要的情况是这样的

  1. 处于中文输入法状态时,此时未打字,直接按Esc键,输入法切换成英文状态,同时vim也切换成 NORMAL 模式。 (这个过程目前是没有问题)
  2. 当中文输入法状态,打字还未上屏的情况下,按Esc键,只清屏,不切换成英文状态,vim也不切换成 NORMAL 模式。 (当前这个操作有问题)
@huo-feng-ding
Copy link
Author

看样子是没解了,我暂时将Tab键映射成清屏操作了,唉

@baober90
Copy link

baober90 commented Dec 6, 2024

不好意思,最近刚用上Rime,问题比较多,请见谅。

 app_options:
    vim.exe:
      ascii_mode: true
      vim_mode: true

我配置了vim_mode后, 在vim软件里,进入插入模式时,使用中文输入法,此时打的字还未上屏,我想按 Esc 键进行清屏,操作的结果是清屏了,同时还将输入法切换成英文输入法。

正常想要的情况是这样的

  1. 处于中文输入法状态时,此时未打字,直接按Esc键,输入法切换成英文状态,同时vim也切换成 NORMAL 模式。 (这个过程目前是没有问题)
  2. 当中文输入法状态,打字还未上屏的情况下,按Esc键,只清屏,不切换成英文状态,vim也不切换成 NORMAL 模式。 (当前这个操作有问题)

个人理解:
场景1: 按esc, 触发动作: ⑴ Rime自身切换到英文 ⑵ 将"esc事件"传递给vim软件
场景2: 按esc,解发动作: ⑴ Rime清屏 (不会继续触发别的动作,如果想触发场景1的两个动作,需要再次按下"esc")

可以看一下鼠须管这个源码: https://github.com/rime/squirrel/blob/9373cf2d6d0b011392857fe450c2dd95e5452bab/sources/SquirrelInputController.swift#L372

@huo-feng-ding
Copy link
Author

但是现在是在按Esc的时候,Rime触发了清屏的动作,同时自身还切换到英文状态。
正常流程是按两次Esc,第一次是清屏动作, 第二次是Rime自身切换英文状态,同时将esc事件传递给vim退出编辑状态才对

@baober90
Copy link

baober90 commented Dec 6, 2024

你用的是windows的小狼毫吗? 我在是mac 里用的vim,目前在mac里使用的效果就是你想要的🙂

@huo-feng-ding
Copy link
Author

我是在windows下用的小狼毫

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants