Wie benenne ich einen Bereich in tmux um?

119

Wie benenne ich einen Bereich um tmux?

Ovolax
quelle

Antworten:

186

Meinst du tmux window? Ctrl + b + ,Wenn Sie Cb als Sendepräfix haben (standardmäßig)

Auch C-b :rename-window <new name>und tmux rename-window <new name>arbeiten auch.

Wie ich weiß, können Sie den Bereich nicht umbenennen

idej
quelle
Wenn ich das aktuelle Fenster umbenenne, kann ich nicht sehen, was ich tippe. Ist das standardmäßig so? Oder liegt es an meiner Konfiguration? Obwohl ich denke, dass meine Konfiguration dies nicht verhindert tmux.
Zyy
Zur Verdeutlichung können Sie einen Bereich umbenennen. Dies ist erforderlich, wenn die Binärausgabe versehentlich beschädigt wird. Die Antwort von @ Mapad löst dieses Problem.
FuzzyTew
Wie wird das Umbenennungsfenster, wenn der Umbenennungsbereich gefragt wird, zur akzeptierten Antwort?
XMAN
das wird zurückgesetzt, wann immer Siels
anilbey
2
@anilbey Gleich hier. Die Lösung dafür istset-option -g allow-rename off
joeytwiddle
35

Ja, Sie können Fensternamen umbenennen und nicht nur Fensternamen, die mit tmux> = 2.3 beginnen. Geben Sie einfach Folgendes in Ihre Shell ein:

printf '\033]2;%s\033\\' 'title goes here'

Möglicherweise müssen Sie Ihrer .tmux.conf Folgendes hinzufügen, um Fensternamen anzuzeigen:

# Enable names for panes
set -g pane-border-status top

Sie können auch automatisch einen Namen zuweisen:

set -g pane-border-format "#P: #{pane_current_command}"
Mapad
quelle
Gibt es eine Möglichkeit, Argumente eines Befehls in das Fensterrahmenformat zu bringen? Oh, es gibt ein entsprechendes Problem bei Github.
konstunn
14

Für die Skripterstellung von tmux gibt es einen Befehl rename-window , der z

tmux rename-window -t <window> <newname>
DenLilleMand
quelle
8

Für diejenigen, die ihre Fenster einfach umbenennen möchten, ist dies das, was ich in meinem habe .tmux.conf

set -g default-command '                      \
function renamePane () {                      \
  read -p "Enter Pane Name: " pane_name;      \
  printf "\033]2;%s\033\\r:r" "${pane_name}"; \
};                                            \
export -f renamePane;                         \
bash -i'
set -g pane-border-status top
set -g pane-border-format "#{pane_index} #T #{pane_current_command}"
bind-key -T prefix R send-keys "renamePane" C-m

Fenster werden automatisch mit ihrem Index, dem Computernamen und dem aktuellen Befehl benannt. Um den Computernamen zu ändern, können Sie ausführen, <C-b>Rwodurch Sie aufgefordert werden, einen neuen Namen einzugeben.

* Das Umbenennen von Fenstern funktioniert nur, wenn Sie sich in einer Shell befinden.

Raman
quelle
4

Auch beim Erstellen von Skripten können Sie beim Erstellen des Fensters mit einen Namen angeben -n <window name>. Beispielsweise:

# variable to store the session name
SESSION="my_session"

# set up session
tmux -2 new-session -d -s $SESSION

# create window; split into panes
tmux new-window -t $SESSION:0 -n 'My Window with a Name'
Wählscheibe
quelle
3

Die einfachste Möglichkeit für mich war, stattdessen den Titel des Terminals umzubenennen. Weitere Informationen finden Sie unter: /superuser/362227/how-to-change-the-title-of-the-mintty-window

In dieser Antwort wird erwähnt, dass die PS1-Variable geändert werden soll. Hinweis: Meine Situation war speziell für Cygwin.

TL; DR Fügen Sie dies in Ihre .bashrc-Datei ein:

function settitle() {
      export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
      echo -ne "\e]0;$1\a"
}

Fügen Sie dies in Ihre .tmux.conf-Datei oder in eine ähnliche Formatierung ein:

set -g pane-border-status bottom
set -g pane-border-format "#P #T #{pane_current_command}"

Anschließend können Sie den Titel des Fensters ändern, indem Sie ihn in die Konsole eingeben:

settitle titlename
Todd
quelle
0

Sie können den Fenstertitel anpassen, indem Sie den Fensterrahmen in der Datei tmux.conf wie folgt festlegen:

###############
# pane border #
###############
set -g pane-border-status bottom
#colors for pane borders
setw -g pane-border-style fg=green,bg=black
setw -g pane-active-border-style fg=colour118,bg=black
setw -g automatic-rename off
setw -g pane-border-format ' #{pane_index} #{pane_title} : #{pane_current_path} '
# active pane normal, other shaded out​
setw -g window-style fg=colour28,bg=colour16
setw -g window-active-style fg=colour46,bg=colour16

Wobei pane_index, pane_title und pane_current_path Variablen sind, die von tmux selbst bereitgestellt werden.

Nachdem Sie die Konfiguration neu geladen oder eine neue tmux-Sitzung gestartet haben, können Sie den Titel des aktuellen Bereichs wie folgt festlegen:

tmux select-pane -T "fancy pane title";
#or
tmux select-pane -t paneIndexInteger -T "fancy pane title";

Wenn in allen Fenstern einige Prozesse ausgeführt werden, sodass Sie die Befehlszeile nicht verwenden können, können Sie die Befehle auch eingeben, nachdem Sie die Präfixbindung (standardmäßig Cb) und einen Doppelpunkt (:) gedrückt haben, ohne dass "tmux" vor dem Befehl steht Befehl:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Tech Nomad
quelle