tmux でコピー モードに入るときに [0/0] インジケーターはどういう意味ですか?

tmux でコピー モードに入るときに [0/0] インジケーターはどういう意味ですか?

tmux でコピー モードに入ると、右上隅のインジケーターに "[0/0]" と表示されます。これらの数字の意味についてはマニュアル ページで説明が見つかりません。また、Google では括弧とスラッシュが無視されるため、検索が困難です。

これは、window-copy.c の window_copy_write_line() によって生成されます。

if (py == 0) {
    size = xsnprintf(hdr, sizeof hdr,
        "[%u/%u]", data->oy, screen_hsize(data->backing));
    if (size > screen_size_x(s))
        size = screen_size_x(s);
    screen_write_cursormove(ctx, screen_size_x(s) - size, 0);
    screen_write_puts(ctx, &gc, "%s", hdr);

しかし、変数名は、コードに精通していない人にとってはあまり意味がありません。

これらの数字が何を意味するかについてのヒントはありますか?

答え1

これらは、画面サイズに関してバッファ内のどこにいるかを示す行インジケータです。0 は最後の行 (一番下) で、戻るにつれて増加します。表示される行番号は常に画面の一番下の行になります。

vi/vimのようなコマンドを使用すると、:50カーソルが画面の下部にある状態で50行目に移動し、スクロールバックバッファに100行の空きがあれば次のように表示されます。[50/100]

説明するのは少し難しいのですが、実際に使用できるバッファが 120 行あるが、画面の高さが 20 行の場合、 が表示され、 を[x/100]実行すると、:100カーソルは画面の下部に 100 行目を配置し、その上にはまだ 20 行残っていますが、120 行目までスクロールすると には移動せず、 の[120/120]ままになります[100/100]

答え2

大まかに言えば、2 番目の数字は、ペインの履歴のうち画面に収まらない行数です。コピー モードでペインの上部を超えてスクロールし、画面の下部より「下」にいくつかの行がある場合、最初の数字は 0 より大きくなります。

関連情報