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

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

意外按住 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 的情況下解決這個問題?

答案1

不,目前這是不可能的。

在不重新啟動伺服器的情況下,您唯一可以做的就是在建立新會話時手動覆蓋名稱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

自動會話數由全域變數u_int next_session_id控制session.c正如 grep 原始碼所示,無法從命令列存取它。

tmux new-sessionsession_create()來電session.c(第 88 行)並且next_session_id每當您建立新會話時都會遞增。(short )的-sflag參數設置,否則使用。new-sessionnewnamenext_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);
     }

答案2

嘗試:

tmux kill-server && tmux

相關內容