200 votes

Avec Bash + iTerm2, comment nommer les onglets ?

Dans iTerm2 (Build 1.0.0.20120203), j'ouvre généralement plusieurs onglets, chacun d'entre eux étant divisé en plusieurs volets, et portant sur un thème de travail particulier, par exemple le contrôle de la révision, le codage, la gestion des fichiers, le terminal mysql. J'ai généralement besoin de basculer entre 5 onglets ou plus dans mon flux de travail. Il est parfois difficile de se souvenir 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 de pouvoir les identifier rapidement en jetant un coup d'œil rapide. Est-ce possible ?

7voto

taylorstine Points 171

J'aime bien celui-là :

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

1 votes

Notez qu'en l'état actuel des choses, cela va écraser Intégration d'iTerm Shell.

6voto

Michael Points 839

J'aime vraiment La réponse de taylorstine mais cela brise l'accord de l'iTerm2 Shell qui s'appuie sur le PROMPT_COMMAND variable. Vous pouvez modifier le code de Taylor pour corriger ce problème en ajoutant l'attribut __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

4voto

user1318024 Points 41

J'aime Michael's réponse.

Mais si .iterm2_shell_integration.bash n'existe pas ?

Voici mon point de vue :

# 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

3voto

aianitro Points 121

Si vous travaillez avec des profils (ce qui est très pratique) : Préférences -> Apparence -> Titres des fenêtres et des onglets : cochez la case "Afficher le nom du profil" :

image

C'est comme ça que ça se présente après :

thumbnail linked to main image

3voto

Peter Points 11

Je cherchais une solution qui fonctionne sur l'iTerm2 vanille. J'ai trouvé une solution très efficace qui consiste à ajouter un raccourci clavier qui exécutera cette option (disponible soit en double-cliquant sur l'onglet, soit en choisissant dans le menu Window Edit TabTitle )

Pour ce faire :

  • ouvrir Preferences - Cmd+, ou menu iTerm2 Preferences
  • aller à Keys + au fond
  • enregistrez votre frappe préférée (comme Super+Ctrl+Shift+e ) et choisissez "Action". Select Menu Item
  • choisissez Edit Tab Title à partir de la liste des postes disponibles
  • Voilà !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X