在支持模态文本编辑的编辑器,比如 vim, helix, vscode的vim模式等,在使用 esc键后会进入默认的普通模式(normal mode),这个时候的操作基本是在英文输入状态下完成操作。再使用 ime 中文输入法的情况下,我们使用esc后必须切换回英文输入,无疑对模态操作多了一次步骤。这里我们可以在使用esc时同时切换输入法来解决该问题。

大致的解决办法是:

  1. 利用脚本以及 cli 命令 来切换系统输入法
  2. 编辑器插入模式,为 esc 配置命令切换为回英文,并记录当前的输入法
  3. 在编辑进入插入模式的时候,读取上次插入模式下的输入法并切换

下面介绍 Linux ,osx 下的切换输入法方法。

Linux gnome 环境 ibus

IBus 是一款输入法框架。具体使用可以参考 wiki-ibus

ibus 提供了工具 ibus engine 查看当前的输入法标识,使用 ibus engine rime 切换输入法为rime。 但在 gnome 4 版本中,该命令无法和gnome-shell中的系统状态的输入法保持一致。这个时候我们使用一款 gnome-shell-ibus-switcher 插件来解决该问题。 ibus-switcher 为 gnome-shell 42 版本后 提供了利用 d-bus 切换输入法的方式,从而切换系统输入法