2009-05-15 4 views
19

gvimを使用して、継続的に更新されているログファイルを表示したいと思います。最後に更新された行が表示されます。出来ますか?gvimのテールのような機能

+0

が重複する可能性から*)

を尋ねます(http://stackoverflow.com/questions/785389/using -vim-as-a logfile-viewer) – feuGene

+0

これはgvimを指定し、もう一つはvimを指定します。この解決策はvimでは機能しませんので、別の質問と別の答えです。重複するものではありません。 – iconoclast

答えて

38

開き、ログファイルと

:setlocal autoread 

vimサイト上のプラグイン(Tail Bundle)があります。

+0

Tail Bundleプラグインを使用するにはどうすればよいですか?私はドキュメントを見てきましたが、それらのどれもファイルを継続的にロードするように見えませんでしたか? – ewok

2

vim 7.xでそれほどエレガントでない解決策は、ちょうどよいでしょう:e!いつでも更新プログラムが必要です。

+3

この回答にフラグを立てて申し訳ありませんが、カノプスはやっていないものです... "更新が必要なときはいつでも、最後の更新された行が見えるように継続的に更新されています" 。 – pvandenberk

+0

は、より慎重に投稿された質問を調べます。 – user28095

0

私はそれが短く、ハッキングや外部のスクリプトがたくさんありません。あなたは、ex(vimのwhithin)必要からこのonelinerを実行する(またはログ・ファイルを開いたときのために、のvimrcで各コマンドを置く。)することができます

:set autoread | au CursorHold * checktime | call feedkeys("lh") 

、さらにすることができます:set syntax=logtalkをログ

を着色します

(あなただけfeedkeysとの代わりに "LH" の "G" を使用し、ファイルの末尾に(ほぼ)ジャンプしたい場合)

説明:

  • autoread:外部から変更されたときにファイルを読み込みます(ただし、それ自体では機能しません。内部タイマーなどはありません)。 vimがコマンドを実行したときなど、vimがコマンドを実行したときのみファイルを読み込みます。
  • CursorHold * checktime:ユーザがupdatetime(デフォルトでは4000ミリ秒)にカーソルを移動していないときchecktimeが実行されますファイル外からの変更をチェックします
  • call feedkeys("lh"):カーソルは一度、右と左に移動します。その後、何も(私たちはループを持っている意味し、CursorHoldがトリガされることを、意味している...)たまたま

call feedkeys("G")を使用した場合、スクロールを停止していない:set noautoreadを実行するには - 今のvim教えてくれる、ファイルその変更したANS 1が変更かどうかを読みたい場合は、[ログファイルビューアとしてVIMを使用する]のこのanswerPhanHaiQuangによって解答とflukusによってコメントに参照のうえ)