Dans iTerm2 (version 1.0.0.20120203), j’ouvre en général plusieurs onglets, chacun d’eux ayant des volets divisés. Il s’agit d’un thème de travail particulier, par exemple le contrôle des révisions, le codage, la gestion des fichiers, le travail au terminal mysql. Je dois généralement basculer entre 5 onglets ou plus dans mon flux de travail. Il est parfois difficile de se rappeler ou de dire lequel est lequel en regardant le contenu de l'écran. J'aimerais nommer les onglets d'une manière ou d'une autre, afin que je puisse rapidement dire lequel est lequel en regardant rapidement. Est-ce possible?
Puisque vous utilisez iterm2 sur un mac, une autre option est que vous pouvez simplement appuyer sur CmdI, tapez quelque chose et appuyez sur ESC.
La solution de terminal est un peu plus rapide que cela, mais je voulais juste vous le faire savoir.
J'ai trouvé la fonction suivante, placée dans mon ~/.bashrc
, utile:
function title {
echo -ne "\033]0;"$*"\007"
}
Ensuite, je peux l'appeler à partir de mon invite bash comme suit:
> title I want a pony!
Et mon onglet s'intitule en conséquence.
lancez cette commande pour définir le titre de votre onglet ou de votre fenêtre:
export Prompt_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'
j'ai ajouté ce qui suit à mon ~/.bash_profile
pour toujours lister le répertoire actuel par rapport à mon répertoire personnel:
export Prompt_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
utile lorsque vous avez 100 terminaux minimisés dans votre station d'accueil
J'ai utilisé des solutions similaires aux solutions ci-dessus pendant un bon bout de temps, mais j'ai utilisé suffisamment d'onglets pour que je veuille aussi les coder par couleur pour faciliter la référence visuelle. J'ai donc créé tabset , un utilitaire permettant de définir le titre, le badge et la couleur de l'onglet en fonction du type de travail effectué dans chaque onglet.
Cela nécessite node , mais c'est maintenant une plate-forme couramment installée. À installer:
npm install -g iterm2-tab-set
Ajoutez cette fonction à votre fichier ~/.bash_profile
et cela devrait fonctionner.
function title ()
{
TITLE=$*;
export Prompt_COMMAND='echo -ne "\033]0;$TITLE\007"'
}
J'aime celui la:
#setup terminal tab title
function title {
if [ "$1" ]
then
unset Prompt_COMMAND
echo -ne "\033]0;${*}\007"
else
export Prompt_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
Cela vous permettra de basculer le nom d'un onglet entre un nom personnalisé et un défaut de votre CWD.
title
-> le titre de votre onglet sera ~/YOUR_CWD/
title hey there
-> le titre de votre onglet sera hey there
J'aime vraiment la réponse de taylorstine , mais cela rompt l'intégration de de iTerm2 qui repose sur la variable Prompt_COMMAND
. Vous pouvez modifier le code de Taylor pour corriger cela en ajoutant le __bp_precmd_invoke_cmd
dans le Prompt_COMMAND
chaque fois que vous le bricolez:
# iTerm2 Shell integration
test -e "${HOME}/.iterm2_Shell_integration.bash" && source "${HOME}/.iterm2_Shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ]
then
export Prompt_COMMAND='__bp_precmd_invoke_cmd'
echo -ne "\033]0;${*}\007"
else
export Prompt_COMMAND='echo -ne "\033]0;${PWD/#$HOME/\~}\007";__bp_precmd_invoke_cmd'
fi
}
title
J'aime Michael répondre.
Mais que se passe-t-il si .iterm2_Shell_integration.bash
n'existe pas?
Voici ma prise:
# iTerm2 Shell integration
test -e "${HOME}/.iterm2_Shell_integration.bash" && source "${HOME}/.iterm2_Shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ] ; then
test -e "${HOME}/.iterm2_Shell_integration.bash" \
&& export Prompt_COMMAND='iterm2_preexec_invoke_cmd' \
|| unset Prompt_COMMAND
echo -ne "\033]0;${*}\007"
else
test -e "${HOME}/.iterm2_Shell_integration.bash" \
&& export Prompt_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007";iterm2_preexec_invoke_cmd' \
|| export Prompt_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
Le commentaire de Max Cantor a fonctionné pour moi.
Je pense que Changement automatique de profil et Les badges sont exactement conçus pour répondre à vos besoins:
Changement automatique de profil iTerm2 peut utiliser les informations dont il dispose sur votre chemin actuel, le nom de l'hôte et le nom d'utilisateur pour modifier les profils. Par exemple, la couleur d'arrière-plan de votre fenêtre ou le codage des caractères du terminal peuvent changer lors de la connexion à différents hôtes.
Badges Vous pouvez mettre un badge en haut à droite de votre terminal affichant des informations sur la session en cours. Il peut afficher votre nom d'utilisateur, votre nom d'hôte ou même des données personnalisées comme la branche git actuelle.
alors le résultat peut ressembler à ceci:
Je voudrais prolonger un peu la réponse de B Seven pour plus de clarté.
Étant donné que la plupart d’entre nous aimeraient savoir comment on peut définir le titre d’un onglet même s’ils ne se trouvent pas dans un shell local, au lieu d’un shell distant (par exemple sur ssh).
Étape 1. Preferences -> Profiles -> Terminal uncheck Terminal may set Tab/Window title
Étape 2. Pour chaque onglet, double click on the tab -> Session Title
Maintenant, quoi que vous définissiez dans le titre de la session, il resterait tel quel.