2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

nvimでgithub copilotを使いながらVSCode Neovimを使う技術

Posted at

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で使いこなす方法
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?