关于 VIM 和输入法相关的配置

VSCodeVIM 输入法配合的设置

VSCodeVIM 是 VSCode 的 vim 扩展,其输入法相关的设置目仅在 macOS 和 Win 平台上支持较好,Linux 系统还有待完善。

对于 macOS 系统,需要先参考 https://github.com/daipeihust... 安装 im-select,然后在 VSCode 中配置如下内容:

"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}"

其中 com.apple.keylayout.ABC 是缺省的英文输入法。

对于 Linux 系统,VSCode 中的配置如下:

"vim.autoSwitchInputMethod.enable": true,
"vim.autoSwitchInputMethod.defaultIM": "xkb:us::eng",
"vim.autoSwitchInputMethod.obtainIMCmd": "/usr/bin/ibus engine",
"vim.autoSwitchInputMethod.switchIMCmd": "/usr/bin/ibus engine {im}"

此方法仅限于 ibus 输入法,并且在 Gnome 的系统托盘中显示的有些问题,但至少是可以正常工作的。

macOS 下 MacVim 图形界面的输入法配置

对于 macOS 系统的缺省输入法,配置比较简单,只要在 ~/.gvimrc 中加入如下代码就可以了:

" Set the input method for Mac
if has("gui_macvim")
  autocmd! InsertEnter * set noimdisable
  autocmd! InsertLeave * set imdisable
endif

Linux 下 gVim 图形界面的输入法配置

由于 Linux 平台下图形界面以及其输入法生态复杂,很难向 macOS 那样有统一的简单设置,参考 VSCodeVIM 配置的思路,对于 ibus 输入法已经有了 vim-ibus 插件可以控制输入法,其原理同上面 VSCodeVIM 的思路完全一样,具体的配置细节可以参考我的 splite.vim 项目。

相关推荐