Comment renommer un volet dans tmux?

119

Comment renommer un volet dans tmux?

ovolax
la source

Réponses:

186

Voulez-vous dire fenêtre tmux? Ctrl + b + ,si vous avez Cb comme préfixe d'envoi (c'est par défaut)

En outre C-b :rename-window <new name>et le tmux rename-window <new name>travail aussi.

Comme je sais que vous ne pouvez pas renommer le volet

idej
la source
Lorsque je renomme la fenêtre actuelle, je ne vois pas ce que je saisis, est-ce par défaut? Ou est-ce dû à ma configuration? Bien que je pense que ma configuration n'empêche pas tmuxde le montrer.
zyy
Pour clarifier, vous pouvez renommer un volet, ce qui est nécessaire lorsque la sortie binaire accidentellement le corrompt. La réponse de @ Mapad résout ce problème.
fuzzyTew
Comment renommer la fenêtre, lorsque le volet Renommer est demandé, devient la réponse acceptée.
XMAN
qui est ls
annulé
2
@anilbey Même chose ici. La solution à cela estset-option -g allow-rename off
joeytwiddle
36

oui, vous pouvez renommer les noms de volet, et pas seulement les noms de fenêtre commençant par tmux> = 2.3. Tapez simplement ce qui suit dans votre shell:

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

vous devrez peut-être ajouter les éléments suivants à votre .tmux.conf pour afficher les noms de volet:

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

vous pouvez également attribuer automatiquement un nom:

set -g pane-border-format "#P: #{pane_current_command}"
Mapad
la source
Existe-t-il un moyen de mettre les arguments d'une commande au format de bordure de volet? Oh, il y a un problème correspondant sur github.
konstunn
15

Pour les scripts tmux, il existe une commande appelée rename-window ainsi par exemple

tmux rename-window -t <window> <newname>
DenLilleMand
la source
Était quelque chose comme dans mon cas: tmux rename-window -t 9 my-project.
borracciaBlu
8

Pour ceux qui veulent renommer facilement leurs volets, voici ce que j'ai dans mon .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

Les volets sont automatiquement nommés avec leur index, le nom de la machine et la commande actuelle. Pour changer le nom de la machine, vous pouvez exécuter <C-b>Rce qui vous demandera d'entrer un nouveau nom.

* Le changement de nom de volet ne fonctionne que lorsque vous êtes dans un shell.

raman
la source
4

Lors de la création de scripts, vous pouvez également spécifier un nom lors de la création de la fenêtre avec -n <window name>. Par exemple:

# 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'
cadran rotatif
la source
3

L'option la plus simple pour moi était de renommer le titre du terminal à la place. Veuillez consulter: /superuser/362227/how-to-change-the-title-of-the-mintty-window

Dans cette réponse, ils mentionnent de modifier la variable PS1. Remarque: ma situation était particulière à cygwin.

TL; DR Mettez ceci dans votre fichier .bashrc:

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

Mettez ceci dans votre fichier .tmux.conf, ou dans un format similaire:

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

Ensuite, vous pouvez changer le titre du volet en tapant ceci dans la console:

settitle titlename
Todd
la source
0

Vous pouvez ajuster le titre du volet en définissant la bordure du volet dans le tmux.conf, par exemple comme ceci:

###############
# 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

Où pane_index, pane_title et pane_current_path sont des variables fournies par tmux lui-même.

Après avoir rechargé la configuration ou démarré une nouvelle session tmux, vous pouvez ensuite définir le titre du volet actuel comme ceci:

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

Si tous les volets ont des processus en cours d'exécution, donc vous ne pouvez pas utiliser la ligne de commande, vous pouvez également taper les commandes après avoir appuyé sur le préfixe bind (Cb par défaut) et un signe deux-points (:) sans avoir "tmux" au début du commander:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Nomade Tech
la source