keaising / im-select.nvim

Switch Input Method automatically depends on Neovim's edit mode
MIT License
170 stars 25 forks source link

[Feature] 在 vscode 中不起作用 #28

Closed kortin99 closed 3 months ago

kortin99 commented 3 months ago

在终端模拟器启动 neovim 切换输入法正常,但在 VS Code 中使用 VSCode Neovim 插件不生效。

“我知道可能因为作者没有类似的需求,因此没有做兼容。”

如果有在 VS Code 中使用 neovim 的伙伴,或者知道如何在 VS Code 中实现类似功能的,能否交流一下。

keaising commented 3 months ago

vscode 有自己的插件实现这个功能,你可以搜一下

kortin99 commented 3 months ago

vscode 有自己的插件实现这个功能,你可以搜一下

感谢回复。之前使用 VSCode Vim 是内置 im-select 功能支持的,然而 VSCode Neovim 不支持。后来我也找到名为 Smart IME 的插件,但需要依赖第三方插件,而且体验也不是很好。我更希望能和原生 Neovim一致的体验。

keaising commented 3 months ago

之前我也尝试过,但是没有跑起来,我没有相关的需求所以没有深入研究了

kortin99 commented 3 months ago
if vim.g.vscode then
  -- VSCode extension
  local vscode = require("vscode-neovim")
  vim.api.nvim_create_autocmd("InsertLeave", {
    pattern = "*",
    callback = function()
      os.execute("/opt/homebrew/bin/im-select com.apple.keylayout.ABC")
    end,
  })
  require("config.lazy")
else
  -- ordinary Neovim
  require("config.lazy")
end

今天我尝试通过这种方式兼容了在 vscode 环境中使用 vscode-neovim 插件无法切换输入法的问题。但是我不懂如何专业地编写 lua 脚本,希望能对其他人有所启发。谢谢。