垂直と水平で画面をいっぱいにする大容量データファイルがあるとしましょう。ヘッダー行が画面に残っている間にどのようにファイルを参照できますか?
現在、私はless -S
ファイルを水平方向と垂直方向にすばやくスクロールできるように使用しています。しかし、下にスクロールするとヘッダー行が目立つように消えます。これらの使用量を減らす方法はありますか?
別の方法はvim
分割画面モードで使用することです:set nowrap
。しかし、水平方向にスクロールすると、上部ウィンドウは同じようにスクロールされません(:windo set scrollbind
私が知っている限り垂直スクロールでのみ機能します)。
答え1
スクロールエリア設定をサポートする端末で:
tailf() ( # args: <file> [<number-of-header-lines>]
trap 'tput csr 0 "$((LINES-1))"' INT
tput csr "$((1+${2-1}))" "$((LINES-1))"
tput clear
{
head -n"${2-1}"
printf "%${COLUMNS}s\n" "" | tr ' ' =
tail -n "$((LINES-1-${2-1}))" -f
} < "$1"
)
zsh
(端末のサイズに応じてbash
設定と変数を設定するか、似たようなシェルがあるとします。)$COLUMNS
$LINES
答え2
vimに精通しているなら、これが最善の選択かもしれません。以下を変更しないと、水平スクロールバインディングを有効にできます'scrollopt'
。
set scrollopt=hor
したがって、vim -u NONE
次の方法で目的の動作を取得できます。
:set scrollopt=hor
:set nowrap
:1split
:windo set scrollbind
スキップした列の数とエッジをスキップする開始点からの距離を個別に調整して'sidescroll'
変更する必要があるかもしれません。'sidescrolloff'
答え3
これを試してください(インストールする必要がありますmultitail
):
multitail -du -t "$(head -n 1 filename)" filename
または1行より長いタイトルの場合:
multitail -wh 2 -l "head -n 2 filename" filename
ファイルの代わりにコマンド出力を追跡するには、次のようにします。
multitail -wh 2 -l "command | head -n 2" -l command
または-t
適切に使用してください。使用する必要があります。unbuffer
したがって、コマンド出力がすぐに表示されます。
-D
フォームステータスバーの表示を無効にすることができます-wh
(フォームの目的に反します-t
)。
答え4
最先端のバージョンでは、less
このオプションでこれをサポートしています--header
。
少ないバージョン603リリースノート
バージョン603は、2022年3月15日にベータテスト用にリリースされました。
バージョン590とバージョン603の違いは次のとおりです。
- --header オプションを追加します。
- --no-number-headers オプションを追加します。
- --status-line オプションを追加します。
- ...