時々、vimrcでカスタマイズ/コマンドを試します。すべてが正しいように見えますが、機能しません。
Vimの起動時に何が起こっているのか、どのコマンドが失敗したのかを知るのは難しいため、vimrcで問題の原因となっているものをデバッグするのは本当に困難です。これは試行錯誤のアプローチであり、時間がかかり、実際にPITAです。たとえば、私は問題を抱えています 一部のファイルにsnipmateプラグインを使用 だけで、問題を発見する方法についての手がかりがありません。
Vimの起動時に「実行時ログ」があり、実行したコマンド、失敗したコマンドなどを示しますか?これは私を大いに助けます。
-V [N]オプションを指定してvimを実行すると、かなり大きなランタイムログが実行されます。ここで、Nはデバッグレベルです。
vim -V9myVim.log
myVim.log
というファイル名で現在のディレクトリにデバッグレベル9のログを作成します
:messages
は、vimステータスラインに(おそらく短時間)表示されたすべての警告、エラー、および情報メッセージを表示します。
:echo errmsg
は、最新のエラーメッセージを出力します。
g<
は、ほとんどの人が知らない別の機能です。 :help g<
から:
g<
コマンドを使用すると、前のコマンド出力の最後のページを表示できます。これは、ヒット入力プロンプトで<Space>
を誤って入力した場合に特に便利です。
たとえば、:!ls
を試してからプロンプトをキャンセルし、g<
を押します。
この関数を.vimrcに追加します。
_function! ToggleVerbose()
if !&verbose
set verbosefile=~/.log/vim/verbose.log
set verbose=15
else
set verbose=0
set verbosefile=
endif
endfunction
_
次に、ディレクトリ_~/.log/vim
_を作成し、ToggleVerbose()
を呼び出して、ログを_~/.log/vim/verbose.log
_に取得します。冗長レベルを上げたという理由だけで通常は表示されない"表示するには深すぎるネストされた変数"エラーをキャッチできることに注意してください。
ランタイムログ自体はないと思いますが、デバッグモードで実行できます。
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts
&verboseのため、rootで実行するときに「ToggleVerbose()」関数を使用するには「set nocp」を追加する必要がありました。
これはおそらくすべてに反しますSOの略ですが、ここに私がやることがあります。