ヘッダーを維持しながら大容量データファイルをスクロールする方法

ヘッダーを維持しながら大容量データファイルをスクロールする方法

垂直と水平で画面をいっぱいにする大容量データファイルがあるとしましょう。ヘッダー行が画面に残っている間にどのようにファイルを参照できますか?

現在、私は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 オプションを追加します。
  • ...

源泉:https://greenwoodsoftware.com/less/news.603.html

関連情報