Skip to content
New issue

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

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

Already on GitHub? Sign in 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下用的小狼毫

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

No branches or pull requests

2 participants