VSCodeNeovim とは
一言で言うと、VSCodeのバックエンドでNeovimを動かすプラグインです。
VSCode vimプラグインとの違い
ズバリVSCode側で実装されているか実際の(Neo)Vimが裏で動いているかの違いです。
これによってVSCodeNeovimでは実際に.vimrc等で設定した普段使いのneovimの挙動でVSCodeを使うことができます。これによってLiveShareなどVSCodeを使わざるおえない時もVimmerはホームで安心して(?)改造したnvimを使うことができます(諸説あり)
nvimでcopilotを使っているとVSCodeNeovimを使っている時に消えないゴーストが出る問題
バックエンドでNeovimを動かすと言うことは普段Neovimで使っているプラグインもVSCodeVimでは表示されると言うことを意味しています。そうするとVSCodeの機能とだぶって表示されるわけです。
自分の場合は具体的にはNeovimのCopilotから出たサジェストの出力がVSCode上に不必要に長く残ってしまう現象です。
解決策:起動がNeovim直接かVSCode経由かを区別する
具体的にはこのようなluaのコードで実現できます
require("config.base")
require("config.lsp")
require("config.options")
require("config.commands")
if vim.g.vscode then
require("config.vscode")
else
require("config.onlynvim")
end
読み込みで指定したconfig.vscodeには以下のようにgithub Copilotプラグインを無効化にするコードを書くことで二重起動を防いでいます。
local vscode = require('vscode-neovim')
vim.g.copilot_enabled = 0
未解決な課題
まだまだVSCodeNeovimは自分も研究途上で未解決な問題が数多くあります。知っている人いたらコメントで議論しましょう。Nvimは比較的初心者なので教えてください!
- claude codeなどAIがファイルを新規作成した時にNeovim側が追いきれずたまにフリーズする問題
- vim.cmdをうまくVSCodeNvimで使いこなす方法