Tmux

如何重置 tmux 的自動會話名稱編號?

  • July 21, 2020

在不小心按住 ctrl+alt+t 後,我的 tmux 會話現在會自動以令人討厭的大數字命名:

llama@llama:~$ tmux ls
124: 1 windows (created Mon Jan  5 16:45:55 2015) [80x24] (attached)

如何將此號碼重置為1?我嘗試tmux rename-session將我的會話設置為較低的編號,但在關閉它並打開一個新會話後,編號會從原始編號恢復。

有沒有辦法在不重新啟動 tmux 的情況下解決這個問題?

不,這目前是不可能的。

在不重新啟動伺服器的情況下,您唯一可以做的就是在創建新會話時手動覆蓋名稱tmux new -s 5,例如:

$ tmux new -d -P
10:
$ tmux ls
10: 1 windows (created Wed Jan  7 15:50:29 2015) [107x89]
$ tmux new -s 5 -d -P
5:
$ tmux ls
10: 1 windows (created Wed Jan  7 15:50:29 2015) [107x89]
5: 1 windows (created Wed Jan  7 15:50:40 2015) [107x89]
$ tmux new -s 5 -d -P
duplicate session: 5

自動會話編號由無法從命令行訪問的全域變數控制,正如 grepping 原始碼所揭示的那樣u_int next_session_idsession.c

tmux new-session呼叫(第 88 行)並session_create()在您創建新會話時遞增。flag to (short ) sets的參數,否則使用。session.cnext_session_id``-s``new-session``new``name``next_session_id

    if (name != NULL) {
             s->name = xstrdup(name);
             s->id = next_session_id++;
    } else {
            s->name = NULL;
            do {
                    s->id = next_session_id++;
                    free(s->name);
                    xasprintf(&s->name, "%u", s->id);
            } while (RB_FIND(sessions, &sessions, s) != NULL);
    }

引用自:https://unix.stackexchange.com/questions/177644