在 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

粗略地说,第二个数字是窗格历史记录中屏幕容纳不下的行数。如果您在复制模式下向上滚动超过了窗格的顶部,并且一些行位于屏幕底部“下方”,则第一个数字大于 0。

相关内容