現在、 @mattn氏作のQiita-vimがどうしても使いたくて、色々と修正をしています(Qiita API v2に対応させる必要があるため)
その時に使ったデバッグ方法です
(vim script初心者のため最適解ではない可能性があります)
vim scriptのデバッグ方法はいくつかあります
:debug
コマンド
:debug<command>
と実行することで、コマンドをステップ実行することができます。
ステップ実行の際のコマンドで、主に自分が使ったものをあげておきます。
尚正確かつ全てのコマンドについてはこちらのvim-jpさんの:help日本語訳のページにあります。
説明のテキストもそこから借りています(正確さのため)
1 | 2 |
---|---|
step | コマンドを実行しそれが終わるとデバッグモードに戻る。 ユーザー関数やソースファイルの呼び出し時には呼び出し先の行に進む。 |
bt | 現在のデバッグセッションの呼び出しスタックトレースを表示する |
finish | 実行中のスクリプトやユーザー関数を終了し呼び出し元でデバッグモードに戻る。 |
up | 呼び出しスタックトレースを 1 つ上へ移動する。 |
down | 呼び出しスタックトレースを 1 つ下へ移動する。 |
quit | 異常停止する。これはCTRL-Cを使うことに似ているが、全てを停止するわけではない。次のブレークポイントで停止する。 |
自分は上記のコマンドのみ使いました...(breakポイントは設定してみたのですがうまく使えなかった)
:verbose
コマンド
:<num>verbose<command>
上記:debug
でのステップ実行がいちいちめんどくさい時は、これで全コマンドログを見ることができます。
breakポイントの設定ができればそちらの方がいいのですが自分はうまく使いこなせなかったので...
初めはこちらでログを見ていました。<num>
の部分に与えた数値によって挙動が変わるようです。
参考例では99
を設定していたので自分もそのまま使いましたが、どうやらもっと小さな値で良いようです...(これについては参考サイトを忘れてしまったためうろ覚えです)
参考: [Gist] mugyu/vimscript_debug.vim
ちなみにこれは後から見つけたのですが、ログをファイルに出力することもできるようです。
(尚情報源が古いので今動くのか確認していません。)(まぁvimは後方互換大事にしていると聞くので多分使えるとは思いますが...)
誰か情報持っていれば教えてくださるとありがたいです
dackdive's blog/vimでランタイムログを出力する
これまたちなみにですが、Qiita-vim
を動かせるようになったらまた投稿します。今度はQiita-Vim
から。