#author("2026-10-13T14:29:21+09:00","","")
#author("2026-10-13T15:08:08+09:00","","")
* debugger など [#t8a5bcc4]

** nvim-dap [#ob8e98c0]

- [[Google:nvim-dap]]

はい。Neovim プラグイン開発に特化した解説として、まず読む価値があるのは `one-small-step-for-vimkind`(OSV)の公式ドキュメントです。これは通常の Lua スクリプトだけでなく、実際に動作している Neovim の Lua コードやプラグインをデバッグするためのアダプターです。

- [[image:https://github.com/jbyuki/one-small-step-for-vimkind]]

**おすすめの解説 [#o93caa37]

***1. OSV 公式 Quickstart・プラグインのデバッグ [#fe08f7be]

最初に読むならこれ

2つの Neovim インスタンスを使い、一方でデバッガを操作し、もう一方でプラグインを実行します。ブレークポイント、ステップ実行、変数確認まで説明されています。

[[公式 README:https://github.com/jbyuki/one-small-step-for-vimkind]]

[[詳細ドキュメント :https://github.com/jbyuki/one-small-step-for-vimkind/blob/main/doc/osv.txt]][[`osv.txt`:https://github.com/jbyuki/one-small-step-for-vimkind/blob/main/doc/osv.txt]]

***2. nvim-dap の基本 [#y5b1c7c1]

DAP クライアント側の設定、ブレークポイント、ステップ実行の操作方法を理解するための資料です。

[[nvim-dap 公式 README:https://github.com/mfussenegger/nvim-dap]]

[[Debug Adapter Installation Wiki:https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation]]

***3. Neovim 公式 Lua プラグイン開発ガイド [#rc24ba50]

プラグインのロード方法や Lua モジュールの構成を確認するための資料です。デバッガの解説ではありませんが、どのコードがいつ実行されるかを把握するのに役立ちます。

[[Lua プラグイン開発ガイド:https://neovim.io/doc/user/lua-plugin/]]

**まず試すなら、この流れです [#a0ed701d]

`logger.nvim` の開発環境とは別に、DAP を一度だけ試してみるのがおすすめです。

+ `nvim-dap` と `one-small-step-for-vimkind` をインストールする。
2. 開発対象の Neovim インスタンスで `require("osv").launch()` を実行する。
3. 別の Neovim インスタンスで対象プラグインの Lua ファイルを開き、ブレークポイントを設定する。
4. デバッガから接続し、プラグインの処理を実行する。
5. ブレークポイントで止まったら、ステップ実行や変数確認を試す。

この手順は OSV の公式 Quickstart に沿ったものです。

[[image:https://www.google.com/s2/favicons?domain=https://github.com\&sz=32]]
[[osv:https://github.com/jbyuki/one-small-step-for-vimkind]]

GitHub

+1



注意点として、ブレークポイントは実行されているソースファイルのパスに依存します。プラグインマネージャー経由でロードしている場合、編集しているファイルと実際にロードされたファイルのパスが異なると、ブレークポイントが効かないことがあります。

[[image:https://www.google.com/s2/favicons?domain=https://github.com\&sz=32]]
[[break:https://github.com/jbyuki/one-small-step-for-vimkind]]

GitHub



私なら、まず単純な Lua 関数でステップ実行を試し、その後 `keyevent.nvim` のイベント処理のような、実際に調査したいコードで試します。

これで、変数をその場で詳しく調べる作業は DAP、イベントの順序やタイミングを記録して後から追う作業は `logger.nvim` という使い分けができるか、実感をもって判断できると思います。

** plenary.nvim [#oc5ae87c]

- [[Google:plenary.nvim]]

** logger [#m80038e9]

- vim.log
- wsdjeg/logger.nvim
- nvim-chainsaw/timber.nvim

Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes