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