在 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。