Wie kann ich die automatische Sitzungsnamennummerierung von tmux zurücksetzen?

Wie kann ich die automatische Sitzungsnamennummerierung von tmux zurücksetzen?

Nachdem ich versehentlich Strg+Alt+T gedrückt gehalten habe, werden meine Tmux-Sitzungen jetzt automatisch mit nervig hohen Nummern benannt:

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

Wie kann ich diese Nummer auf zurücksetzen 1? Ich habe versucht, tmux rename-sessionmeine Sitzung auf eine niedrigere Nummer zu setzen, aber nachdem ich sie geschlossen und eine neue Sitzung geöffnet habe, wird die Nummerierung ab der ursprünglichen Nummer fortgesetzt.

Gibt es eine Möglichkeit, dies zu beheben, ohne tmux neu zu starten?

Antwort1

Nein, dies ist derzeit nicht möglich.

Das Einzige, was Sie tun können, ohne den Server neu zu starten, ist, den Namen beim Erstellen einer neuen Sitzung manuell zu überschreiben tmux new -s 5, indem Sie beispielsweise Folgendes eingeben:

$ 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

Die automatische Sitzungsnummer wird durch die globale Variable u_int next_session_idinsession.cAuf die nicht über die Befehlszeile zugegriffen werden kann, wie das Greppen des Quellcodes zeigt.

tmux new-sessionruft session_create()ansession.c(Zeile 88) und next_session_idwird erhöht, wenn Sie eine neue Sitzung erstellen. Das Argument von -sflag auf new-session(kurz new) setzt name, andernfalls next_session_idwird verwendet.

     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);
     }

Antwort2

versuchen:

tmux kill-server && tmux

verwandte Informationen