私はvimを使用してログファイルを分析していますが、形式は次のようになります
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
ほとんどの場合、日付と時刻は気にしません。それらを非表示にして、Name列とLogText列に焦点を合わせたい(画面領域を節約するため)。最初の3列は常に行の最初の35文字を占めるためです。vimが各行の最初の35文字を表示しないようにする方法はありますか?
私はvimを使用してログファイルを分析していますが、形式は次のようになります
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
ほとんどの場合、日付と時刻は気にしません。それらを非表示にして、Name列とLogText列に焦点を合わせたい(画面領域を節約するため)。最初の3列は常に行の最初の35文字を占めるためです。vimが各行の最初の35文字を表示しないようにする方法はありますか?
回答:
最初の文字を非表示にしたり、削除したり、見えないようにスクロールしたりするのではなく、どのように非表示にするかを尋ねたので、実際に非表示にする方法は次のとおりです。
一致を使用して、構文の強調表示および隠蔽機能と組み合わせて、実際に行内の一致した文字を表示しないようにすることができます。
各行の最初の25文字を非表示にするには:
:syn match Concealed '^.\{25\}' conceal
:set conceallevel=2
代わりに、日付の句読点を持つ行のみを非表示にするには:
:syn match Concealed '^....-..-.. ..:..:..\..... ' conceal
再表示するには:
:syn clear Concealed
:set conceallevel=0
通常このように見えるもの:
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
最初の2つのコマンドを実行すると、次のようになります。
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
vim
:help :syn-match
help :syn-conceal
help 'conceallevel'
help 'concealcursor'
+conceal
機能します。これを機能させるには、vimを(私の場合は)オプションでコンパイルする必要があると思います。またset concealcursor=nc
、カーソル行が拡大するのを防ぐために行うことをお勧めします。
+conceal
機能オプションは数年のように標準です。悲しいことに、今ではあまり知られていない。それは本当に素晴らしく、柔軟です。与えるたくさんの新しいオプションのを...
:%!cut -b36-
cut
コマンドでバッファの内容を実行し、36バイト目以降のみを保持します。%
バッファ全体を実行し、その内容を出力で置き換えることを意味します。その後!
、実行するプログラムとして行の残りを含むfilterコマンドです。この場合、バッファを上から保存しない限り、基礎となるファイルは変更されません。
トリミングされていない元のバッファを元に戻すには:e
、実際のファイルでバックアップされている場合、を使用できます。
%!cat %
を取り戻すために使用しますか?これは素晴らしい作品と私は使用することができmap
、これらの2を切り替えるには
あなたが探しているものともっと一致すると思います 水平スクロール。
Z
は水平スクロールコマンドキーで、左または右矢印キーで移動する方向が続きます。
最初:set nowrap
に行の折り返しを無効にします。その後、プレスz、35、→35個のスペースをスクロールします。
:set nosol
[Esc]
z
s
バッファやファイルを変更することなく、覚えやすいソリューションがあります。L
表示したいファイル部分の最初の文字(例では)にカーソルを置き、入力します
:set nowrap
zs
zs
コマンド意志のセットアップviのカーソルで文字が画面の最初の列に表示されていることをするように。入力していないことを確認してください:set nosol
構成ファイルをして。
の g$
コマンドは、カーソルを表示されている最後の列に移動します。
の g0
コマンドは、最初に表示される列、L.を含むものにカーソルをバックに移動します
いずれかのキーでカーソルを表示列の左右に移動すると、表示ウィンドウが移動します。
g0
コマンドが最初に表示される列にカーソルを移動します
cut -c36- logfile > logfile_with_first_35_chars_missing
してから確認できます。