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

相關內容