Wie benenne ich einen Bereich in tmux um?


119

Wie benenne ich einen Bereich um tmux?

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


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}"

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>

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.


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'

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

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"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.