macOS NeoVim自动切换输入法

macOS NeoVim自动切换输入法

注意

由于 Neovim 的 Vscode 设置中,没有自动切换输入法的选项。其设置只能有 .config/nvim 控制。因此在切换输入法的时候,延迟非常大。

VIM 插件已经的字体抖动问题已经被修复。直接参考下面文章即可。

macOS VScode Vim自动切换输入法

前言

在Windows和Linux上,如果我们需要再vscode中使用vim, 我们通过im-select可以非常轻易的切换输入法。

然而在macOS上,im-select确实可以起到作用。但是由于macOS的特殊机制,切换到中文输入法的时候,我们需要切换窗口,才能激活中文输入法。详情请见:切换第三方中文输入法之后无法立即激活输入法。

总而言之,我们无法通过im-select 在macOS上取得预期的效果。

解决方法

我们可以使用laishulu/macism这个库来解决以上问题。

安装

  1. 通过Homebrew安装macism
1
2
brew tap laishulu/macism
brew install macism
  1. neovim安装插件。这里我使用的vim-plug,其他插件管理器安装方式同理。

    • init.vim中添加如下配置

      1
      2
      3
      4
      5
      let g:macosime_auto_detect = 0

      call plug#begin("~/.vim/plugged")
      Plug 'laishulu/vim-macos-ime'
      call plug#end()
    • 输入:PlugInstall,安装插件

  2. vscode中安装neovim插件。
    为什么我们neovim这个插件,而不是用vscode-vim这个插件呢?因为vscode-vim这个插件有着输入中文闪烁的问题。至今还没有解决。

  3. 设置neovim插件。分别设置你neovim的安装位置和init.vim的位置
    image-20230213160042796
    image-20230213160112246

使用

  1. 授予权限。
    当初次使用的时候,需要授予权限。在授权之后,还需要重启应用

  2. 设置快捷键。
    macism通过调取系统的快捷键来切换输入法。因此我们需要设置一下系统的快捷键。

    我们必须要开启选择上一个输入法的快捷键。因为ctrl + space 和IDE的快捷键冲突了,所以我这里换成了option + space。大家可以换一个没有使用的组合。
    image-20230213155308033

注意

  • 默认的因为输入法是com.apple.keylayout.US。如果你是com.apple.keylayout.ABC,请在配置文件中添加如下配置
    1
    let g:macosime_normal_ime = 'com.apple.keylayout.ABC'