🤖

AIを使ってneovim設定の問題を解決

に公開

こちらはMOSHの2025年のアドベントカレンダーの11日目の記事です。
個人的にはすっかり年イチ投稿になってしまったし、テーマ的にも近年ますます影を薄くしているような気がする(neo)vimの話題ですので、あなたの知らない世界をちょっと覗いてみようというような心持ちで読んでいただけましたら幸甚でございます😙

ここ数ヶ月の悩み

LSPが動かせない・・!

今年の12月に入るまでの私のneovim設定の最も大きな変更は、プラグイン管理をようやくpacker.nvimからlazy.nvimに移行したくらいで、その他は本当に軽微な修正くらいで手を入れていませんでした。
lazy.nvimは(設定次第ですが)起動時に各プラグインのアップデートチェックをしてくれるので、常に最新の状態を保つのがラクで、移行してよかったなーと常々感じていました。

が、あるときふと気づいたのです・・
ソースコードのファイルを開いているのにLSPのキーバインドが有効になっていないことに・・😨
シンボル探索やジャンプが使えず、diagnosticsの行き来もできず、シンボルのリネームなどのコードアクションも使えないというのはIDE的な使い方をするエディタとしては致命的です。

LspInfoコマンドを実行するとLSP自体は普通に動いていたので、おそらく使っているプラグインのいずれかの破壊的変更によって、LSPの起動時にそれに応じたキーバインドをアタッチするという処理が動かなくなったんだろうと当たりはつけていましたが、当時の私は運用系の作業に追われていたのと、Claude Codeを導入したのでそれのチューニングに注力していたこともあり、自身で直接neovimで編集するのはコミットメッセージくらいというような感じになってしまっていたので、一刻も早く解決する必要性も薄れ、結果的に問題を放置することになってしまいました😢

解決に向かおうと決意

メインのエディタがまともに使えない状態で(そこまで)困っていなかった事情は前述のとおりなんですが、ちょっとした手修正がエディタの主な用途になっている状況で重厚なIDEの導入というのは違うだろうし、むしろ起動が超速で動作も機敏なneovimが輝くところでは💡と考えました。

やったこと

問題の設定についてはあたりがついていたので、Claude Codeに「LSPのキーバインド割当処理が動作していないので修正お願いします。ただし、プラグインの設定が最新のバージョンの実装に対応していない可能性があるので必要に応じて修正してください。また、neovim本体や導入しているプラグイン各種は常に最新版を使うので、後方互換を考慮する必要はありません。」みたいな指示をしたと思います。
まあ当然一発解決になるということもなく、プラグインの動作タイミングを修正しようとしてきたり、遅延ロードの順序を変更しようとしたりなど、それなりの回数の修正指示を余儀なくされたものの、最終的にはLspAttachというautocmdでキーバインドをセットするというやりかたに修正することで解決できました。

まとめ

この一件から、本体のメンテナもしくはプラグインの開発者のような立ち位置の方からの一次情報が変わらず発信されているコミュニティが存在し、活動しているという心強い実感を得ました。そういったノイズの少ない正確な情報をもとにAIは対応してくれるので、メンテナンス面ではかなり頼りにしちゃっていいという信頼感もあります。
あとはかつてのfuzzy finder祭りやLSP、Tree-sitterによる構文解析など、機能的な転換点があったときにしっかり追従して取り込んでいけるように備えていることが何より重要だと思いました。AIは現状、何もないところから提案してくれることはないので、契機はやっぱり人間である自分なわけですので。

MOSH

Discussion