vim 中使用 esc 切换英文输入

前言

在 vim 中使用编辑模式进行了中文输入之后,切换到普通模式时,必须手动切换到英文模式才能进行命令输入,不太方便,故在网上找了找如何自动切换中英文的解决方案

rime 用户

方式一

在方案中填入

key_binder/bindings:
  - { when: always, accept: Escape, toggle: ascii_mode}

这样就可以使用 Esc 键切换为英文模式,但是这样有一个弊端,必须得先按一次 Esc 切换为英文后,再按一次 Esc 切换为普通模式

方式二(推荐)

在发行版方案中填入

app_options:
  应用:
    vim_mode: true

示例:

app_options:
  com.googlecode.iterm2:
    vim_mode: true

这样在 iterm 中使用 vim 的时候,就可以在编辑模式按一下 Esc 切换为英文并且 vim 切换为普通模式

!截至此时(2020-11-05)官网 suirrel 稳定版 14.0 尚不支持该功能,可下载测试版常鲜
如何查看当前版本是否支持该 feature?
检查 build/squirrel.yaml 文件 config_version 最低需求 0.34

其他输入法用户

因为我是 mac 用户,所以暂时先介绍关于 mac 的设置方案,其他平台的设置方案请查看解决恼人的 vim 中文输入法切换问题

  1. 安装依赖

    git clone https://github.com/myshov/xkbswitch-macosx.git
    cp xkbswitch-macosx/bin/xkbswitch /usr/local/bin
    git clone https://github.com/myshov/libxkbswitch-macosx.git
    cp libxkbswitch-macosx/bin/libxkbswitch.dylib /usr/local/lib/
  2. 安装 vim 插件 vim-xkbswitch
    Vundle 用户添加到 .vimrc

    Plugin 'lyokha/vim-xkbswitch'
    " 然后执行 :PluginInstall

参考

[提案] app_options 参数设定追加 esc 自动切换 ascii_mode 选项

解决恼人的 vim 中文输入法切换问题