![tmux でコピー モードに入るときに [0/0] インジケーターはどういう意味ですか?](https://rvso.com/image/1311273/tmux%20%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E5%85%A5%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%20%5B0%2F0%5D%20%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%B1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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 より大きくなります。