vimでtail -fディスプレイカラー出力を作成するには?

vimでtail -fディスプレイカラー出力を作成するには?

これに質問、ザイルズが答えた。

もう一つの可能​​性はtail -f実行することですEmacsシェルバッファを使用し、Emacsの構文カラー機能を使用します。

私はvimユーザーだからこれをしたいウィム、いいえEmacs
するウィムそのような機能がありますか?

答え1

マルチスレッドプラグインを作成して、PythonまたはVimがサポートし、スレッドを含む他のスクリプトでリアルタイムでバッファを変更できます。

しかし、私が知っている限り、これは端末でのみ機能します。少なくともX11では、GUIが他のスレッドによって変更されると、GUIバージョンがクラッシュします。

他のプランを受け入れるとGRCそして西沢ストリームをカラー化する機能。

答え2

私はそれが短く、ハッキングや外部スクリプトがあまりないことが好きです。必要に応じてex(vimから)でこのオネライナを実行できます(またはログファイルを開くときに使用する各コマンドをvimrcに入れることができます)。

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

:set syntax=logtalkまた、ログに色を割り当てることもできます。

(ほとんどのファイルの最後に移動するには、フィードキーと一緒に "lh"の代わりに "G"を使用します。)

説明する:

  • autoread:外部から変更したときにファイルを読み込みます。 (しかしそれ自体はうまくいきません。内部タイマーなどはありません。vimがexコマンドのようなことをするときにのみファイルを読みます。:!
  • CursorHold * checktime:ユーザーが指定された時間updatetime(デフォルトは4000ms)以内にカーソルを移動しないときに実行checktime、ファイルの外部で変更を確認する
  • call feedkeys("lh"):カーソルが右に1回移動し、左に1回移動します。これは何も起こりません(つまり、CursorHoldトリガーされたことを意味します)。リング)

使用中にスクロールを停止するcall feedkeys("G")には、:set noautoreadvimはファイルが変更されたことを知らせ、変更内容を読むかどうかを尋ねます。

私はscreen / tmuxなしでsshセッションで作業しているときにtail -fの代わりにvimでログファイルを見るのが好きです。また、必要に応じてログファイルから直接コピーしたり、出力を直接保存したり... vimでできることをすべて行うことができます:)

*したがって回答(答えを参照してくださいパンハイグァンそしてコメント偶然)

関連情報