vim:ファイル内のすべての行の最初のn文字を隠す

vim:ファイル内のすべての行の最初のn文字を隠す

vimを使用してログファイルを分析していますが、フォーマットは次のとおりです。

YYYY-MM-DD HH:MM:SS.USEC PID Name LogText

ほとんどの場合、日付と時刻に気にしないからです。私はそれらを隠し、名前とログテキスト列に集中したいだけです(一部の画面スペースを節約するため)。最初の3つの列は常に行の最初の35文字を占めます。 vimが各行の最初の35文字を表示しないようにする方法はありますか?

答え1

最初の文字を削除したり、目立たないようにスクロールしたりするのではなく、隠す方法についてお問い合わせいただきました。したがって、実際に隠す方法は次のとおりです。

Vimでテキストを非表示にするには、hideを使用します。

あなたはそれを使用することができますマッチ、結合する構文強調そして隠れる関数は実際には1行以内に一致する文字を表示しません。

各行の最初の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'


(これがうまくいかない場合はお知らせください。私が知らないいくつかの設定があるかもしれません。それでうまくいきます。)

答え2

vimを使ってフィルタ機能。ランニング:

:%!cut -b36-

以下を介してバッファの内容を実行します。cut命令ではバイト 36 以上のみ予約されます。%バッファ全体を実行し、その内容を出力に変更し、!フィルタコマンドと実行されるプログラムに残りの行を置き換えることを意味します。バッファを一番上に保存しないと、デフォルトファイルは変更されません。

:eトリムされていない元のバッファを復元するには、物理​​ファイルがサポートしている場合を使用できます。

答え3

私はあなたが探しているものともっと一致すると思います水平スクロール

Z水平スクロールコマンドキーと移動方向の左または右矢印キー。

まず:set nowrap改行を無効にします。次にz、、35を押して35マスまでスクロールします。

答え4

バッファやファイルを変更する必要がない覚えやすいソリューションがあります。L(あなたの例では)見たいファイル部分の最初の文字にカーソルを置き、次のように入力します。

:set nowrap
zs

このzsコマンドは、カーソル位置の文字が画面の最初の列に表示されるようにviを設定します。:set nosolプロフィールを入力していないことを確認してください。

このg$コマンドは、カーソルを最後に見える列に移動します。

このg0コマンドは、Lを含む列である最初の列にカーソルを戻します。

任意のキーまたはカーソルを表示する列の外側の左右に移動すると、表示されるウィンドウが移動します。

関連情報