在tmux中进入复制模式时,[0/0]指示符的含义是什么?


1

在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);

但变量名对于不熟悉代码的人来说并不是很有启发性。

有关这些数字的含义的任何提示?

Answers:


0

它们是关于屏幕大小在缓冲区中的位置的线指示符,0是最后一行(在底部),它们随着您的返回而增加。显示的行号始终是屏幕底部的行。

使用类似vi / vim的命令:50,如果你将光标放在第50行,光标位于屏幕的底部,如果在回滚缓冲区中有100行可用,它会显示[50/100]

这有点难以描述但是如果你有120行的实际缓冲区可用,但你的屏幕高度是20行它会显示[x/100],当你做了一个:100光标会将100行放在屏幕的底部,你仍然会有20行它上面有更多的线条,但是向上滚动到第120行不会让你进入,[120/120]而是留在[100/100]


因此,第二个数字是从活动终端视图滚动的行数,第一个数字是缓冲区中比最后一行显示的行数更多的行数。所以它基本上让你感觉到你在缓冲区的位置。谢谢!
bps

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.