如何重置 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-session来电session_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

相关内容