vim-delveでGoのプログラムをデバッグする

VIm、NeovimでGoをデバッグするときprintデバッグで頑張るのも大変なので、開発につまったときはvscodeに切り替えてデバッグしていたですが、vimでも高機能エディタと同じようにできることがわかったので試しました。

事前準備

delveのインストール

Go言語のデバッグツールdelveが必要なのでインストールします。

go install github.com/go-delve/delve/cmd/dlv@latest

vim-delveのインストール

delveだけでもデバッグできますが、より使いやすくするために vim-delve というvimプラグインをインストール。

vim-delveでデバッグしてみた

↓こんな感じに。

vim-delveでデバッグしてみた。 vim-delveでデバッグしてみた。

vim-delveの使い方

  • :DlvAddBreakpoint…ブレイクポイントのセット
  • :DlvRemoveBreakpoint…ブレイクポイントの解除
  • :DlvClearAll…全てのブレイクポイントとトレースポイントをクリア
  • :DlvToggleBreakpoint…ブレイクポイントのセット/解除の切り替え
  • :DlvDebug…デバッグ起動

その他の操作は vim-delveのREADME.md を参照のこと。

コマンドを直接打つのは大変なので、私はキーマップを下記のように設定しています。

nmap <silent> <Leader>9 :DlvToggleBreakpoint<CR>
nmap <silent> <Leader>5 :DlvDebug<CR>

delveの使い方

デバッグが起動すると (dlv) というプロンプトが表示され、delveのコマンドで操作します。

ブレイクポイントが設定されている場合はそこで処理が止まるので、変数の中身をみたり、次のブレイクポイントに進んだりできます。

  • n…次の行の処理に進む
  • c…次のブレイクポイントまで処理を進める
  • p ${変数名}…変数の中身を確認する

その他のdelveの操作は本家のドキュメントか、 help コマンドで確認できます。

vim-delveでテストコードのデバッグ

下記コマンドでテストコードをデバッグすることも可能。

:DlvTest

まとめ

vim-delve便利でした。やったね!