「vimランタイムログ」はありますか?


130

vimrcでカスタマイズ/コマンドを試すこともあります。すべてが正しいように見えますが、機能しません。

vimの起動時に何が起こっているのか、どのコマンドが失敗したのかを知ることは難しいため、vimrcで問題を引き起こしている可能性のあるものをデバッグすることは非常に困難です。これは試行錯誤のアプローチであり、時間がかかり、実際にはPITAです。たとえば、一部のファイルでsnipmateプラグインに問題があり、問題を発見する方法がわからないだけです。

vimの起動時に、実行されたコマンド、失敗したコマンドなどを示す「ランタイムログ」はありますか?これは私にとても役立ちます。

回答:


163

-V [N]オプションを指定してvimを実行すると、かなり大きなランタイムログが作成されます。ここで、Nはデバッグレベルです。

vim -V9myVim.log

現在のディレクトリにデバッグレベル9のログをファイル名で作成します myVim.log


私はZyxとあなたの両方のアプローチが好きでしたが、あなたのアプローチはcmdでのみよりシンプルであり、実行するたびにログへのパスを設定できるため、私の意見ではより優れています。 「私のvimrc。そして、SOへようこそ!
だれかがまだMS-DOSを

2
:h 'verbose'およびも参照してください:h :verbose
Palec、2015年

MacVim-Vオプションやコマンドラインオプションをサポートしていないようです。
emallove

これにより、ファイル名のない空のvimバッファーが開きます。次は何?
Geoff Langenderfer

104

:messages vimステータスラインに表示されたすべての警告、エラー、および情報メッセージを(おそらく一時的に)表示します。

:echo errmsg 最新のエラーメッセージを出力します。

g<数人が知っているもう1つの機能です。から:help g<

このg<コマンドを使用して、前のコマンド出力の最後のページを表示できます。これは<Space>、ヒットエンタープロンプトで誤って入力した場合に特に便利です。

たとえば:!ls、プロンプトをキャンセルしてから、を押してみてくださいg<


15

この関数を.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。冗長レベルを上げただけでは通常表示されない«変数のネストが深すぎて表示できない»エラーが発生する可能性があることに注意してください。


2

ランタイムログ自体はないと思いますが、デバッグモードで実行できます。
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts


2
このサイトはハッキングされているようです。修正されるまで、web.archive.org / web / 20090323034339 / http://…でキャッシュバージョンを確認してください。
Mu Mind

私は403禁止されました
フランク・ファン


1

これはおそらくSOのすべてに反しますが、ここで私がすることは、警告が表示されてすぐに印刷画面を押して画像を見るだけです。


一時停止ボタンは、無駄な紙を除いて、同様の効果がありませんか?
ルーク

これまでは、一時停止キーの機能を知りませんでした。いずれにせよ、私はそれは、Linuxには何もないとは思わないstackoverflow.com/questions/92802/...
PUK

2
FWIW、* nix端末はCtrl-Sで出力を一時停止し、Ctrl-Qで再開します。
joeytwiddle 2013年

1

&verboseのため、ルートで実行するときに「ToggleVerbose()」関数を使用するには「set nocp」を追加する必要がありました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.