Question Avec Bash + iTerm2, comment nommer les onglets?


Dans iTerm2 (Build 1.0.0.20120203), j'ouvre généralement plusieurs onglets, chacun comportant des volets divisés et traitant d'un thème particulier, par exemple le contrôle des révisions, le codage, la gestion des fichiers, le fonctionnement du terminal mysql. Je dois généralement basculer entre 5 ou plusieurs onglets dans mon flux de travail. Il est parfois difficile de se rappeler ou de dire qui est ce en regardant le contenu de l'écran. Je voudrais nommer les onglets d'une manière ou d'une autre, pour que je puisse rapidement dire qui est en jetant un coup d'œil rapide. Est-ce possible?


152
2018-05-02 19:08


origine


duplicata possible de Modifier les titres de la fenêtre et des onglets iTerm2 dans zsh - Daniel Beck♦
Pas entièrement dupliqué. Alors, comment ajouter l'application en cours d'exécution dans le cadre du titre de l'onglet? C'est à dire. quel onglet utilise emacs, mysql, etc.? - qazwsx
C'est à dire. Tous mes onglets ont le même hôte et le même utilisateur. Donc, l'utilisation de ceux-ci ne différencie pas mes onglets. - qazwsx
Tu veux dire que tu veux Afficher le nom du travail en cours des préférences de iTerm? Notez que le sujet lié ne concerne pas le nom d'utilisateur ou l'hôte. - Daniel Beck♦
Bon, je veux montrer quelques indications sur le programme en cours d'exécution ou sur chaque onglet. En outre, la solution donnée dans l'autre article ne fonctionne pas pour Bash + iTerm2. - qazwsx


Réponses:


Puisque vous utilisez iterm2 sur un mac, une autre option est que vous pouvez simplement appuyer sur Cmd-I, taper quelque chose et taper sur Escape.

La solution de terminal est un peu plus rapide que cela, mais je voulais juste vous le faire savoir.


182
2017-08-08 15:29



Cela fonctionne pendant une seconde jusqu'à ce que j'émette un retour sur l'onglet que j'ai renommé. - Stewie
@Stewie Dans Préférences -> Profils -> Terminal, désélectionnez "Autoriser le terminal à signaler le titre de la fenêtre". - Max Cantor
C'est décoché. Il renomme toujours le titre. - Stewie
@SteveBennett ce n'est pas le "thème" (en fait, le terme est "profil") lui-même; la commande CMD + I est "Modifier la session en cours ..." (dans le menu Affichage), elle modifie simplement l'instance du profil de cet onglet. Hitting Escape ferme simplement la fenêtre, ce qui est nécessaire car cette fenêtre ne possède pas de bouton "Enregistrer". - MidnightLightning
Que faire si plusieurs volets sont ouverts? Devez-vous renommer chacun pour nommer complètement l'onglet lui-même? - theicfire


J'ai trouvé la fonction suivante, placée dans mon ~/.bashrc être utile:

function title {
    echo -ne "\033]0;"$*"\007"
}

Ensuite, je peux l'appeler de mon invite bash comme suit:

> title I want a pony!

Et mon onglet est titré en conséquence.


105
2018-05-23 17:57



J'ai essayé ceci, mais ça ne marche toujours pas. Je mets cette définition en bash_aliases, et l'avoir chargé dans .profile (if [ -f ${HOME}/.bash_aliases ]; then . ${HOME}/.bash_aliases fi) Mais alors title dog n'a pas transformé le titre de l'onglet en "chien" - qazwsx
+1 - J'ai ajouté le mien à / etc / profile juste parce que là où se trouvent mes alias ... n'oubliez pas de rechercher le fichier une fois que vous avez terminé. Remarque: cela fonctionne également dans le terminal. - blak3r
Très utile. Je voulais un poney; et j'en ai un! - SoEzPz
J'ai mis le mien dans .bash_profile, redémarré et ça a fonctionné comme un charme. - C Johnson
fonctionne pour zsh aussi - Sagar Jauhari


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 en cours 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 dock

pointe du chapeau au monde mac


40
2018-03-04 00:33



Travaux! Gardez à l'esprit que .bashrc ou .bash_profiles peuvent être chargés et non les deux ensemble. J'avais déjà un fichier .bash_profiles, je devais donc le coller dans ce fichier. Merci. - therealmarv
Oh merci! J'ai mis à jour la réponse pour correspondre à cela. J'ai "source ~ / .bashrc" dans mon fichier .bash_profile et oublie que ce n'est pas commun - schpet


Ajoutez cette fonction à votre ~/.bash_profile fichier et il devrait fonctionner.

function title ()
{
    TITLE=$*;
    export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}

15
2017-10-24 03:26





J'ai utilisé des solutions similaires à ce qui précède depuis un certain temps, mais j'utilise suffisamment d'onglets pour que je puisse également les coder en couleur pour une référence visuelle facile. Donc j'ai fouetté tabet, un utilitaire pour définir le titre de l'onglet, le badge et la couleur en fonction du type de travail que je fais dans chaque onglet.

example

Cela demande nœud, mais c'est maintenant une plate-forme couramment installée. À installer:

npm install -g iterm2-tab-set

11
2018-06-15 14:19



C'est génial! J'aime particulièrement le réglage automatique de la couleur de l'onglet. Je vous remercie! - Ashutosh Jindal


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

Il vous permettra de basculer le nom d'un onglet entre un nom personnalisé et une valeur par 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


6
2017-07-26 15:29



Notez que tel-quel, cela va obstruer Intégration de coque iTerm. - Michael


J'aime vraiment la réponse de taylorstine, mais ça casse iTerm2 intégration shell qui repose sur le PROMPT_COMMAND variable. Vous pouvez modifier le code de Taylor pour corriger ceci 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

4
2018-03-30 14:45





J'aime Michael's répondre.

Mais 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

3
2018-05-23 13:21



Notez que dans la v3.1, iterm2_preexec_invoke_cmd est devenu __bp_precmd_invoke_cmd - Michael


Si vous travaillez avec des profils (ce qui est très pratique): Préférences -> Apparence -> Titres de fenêtre et d’onglet: cochez «Afficher le nom du profil»:

image

C'est comme ça que ça se passe:

thumbnail linked to main image


2
2018-01-24 20:45





je pense Changement automatique de profil et Badges sont exactement conçus pour ce dont vous avez besoin:

Changement automatique de profil iTerm2 peut utiliser les informations qu'il connaît sur votre chemin d'accès actuel, votre nom d'hôte et votre nom d'utilisateur pour modifier les profils. Par exemple, la couleur d'arrière-plan de votre fenêtre ou l'encodage du terminal peut changer lors de la connexion à différents hôtes.

Badges   Vous pouvez mettre un badge en haut à droite de votre terminal pour afficher 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.

donc le résultat peut ressembler à ceci:

enter image description here


0
2018-05-01 09:15



Veuillez citer les parties essentielles de la réponse à partir du ou des liens de référence, car la réponse peut devenir invalide si la ou les pages liées changent. - DavidPostill♦