51 votes

Pour iTerm2, comment faire apparaître le répertoire de travail dans le titre de la fenêtre ?

Je suis récemment passé de l'application Terminal par défaut à iTerm2 et j'ai un problème d'utilisation.

Sur Terminal, le répertoire de travail dans lequel vous vous trouvez apparaît dans la barre de titre, ainsi que le processus et la taille des pixels. Par exemple, lorsque vous cliquez sur Fenêtre pour passer d'une session Terminal à l'autre, vous verrez : répertoire_de_travail - processus - taille_des_pixels.

Sur iTerm2, malheureusement, seul le processus s'affiche dans la barre de titre. Par conséquent, si je travaille dans plusieurs fenêtres iTerm2 dans différents répertoires, je ne peux pas facilement différencier laquelle est laquelle lorsque je clique sur Window pour en choisir une. Je sais que je peux facilement passer d'une fenêtre iTerm2 à l'autre une fois que j'en ai sélectionné une, mais j'aimerais pouvoir identifier exactement la fenêtre que je veux immédiatement. (D'ailleurs, j'utilise Witch, et Command-tabbing n'aide pas non plus parce que, là encore, seul le processus apparaît dans la liste).

Des suggestions ? J'ai regardé dans toutes les préférences et je n'ai rien vu. Créer des profils n'est pas exactement ce que je recherche - j'aimerais juste voir le répertoire de travail actuel dans les titres des fenêtres d'iTerm2.

34voto

demure Points 1301

Avec la \033]0;TEXT\007 séquence d'échappement.

Exemple d'utilisation dans Bash : echo -ne "\033]0;$PWD\007"

Que vous pourriez ajouter à votre $PROMPT_COMMAND si vous utilisez Bash, ou si vous vous y attachez d'une autre manière PS1 Il est donc souvent réévalué.

Exemple : export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'

24voto

thakis Points 239

Si vous utilisez zsh (qui est l'option par défaut dans MacOS 10.15+), mettez ceci dans votre ~/.zshrc à la place :

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

Vous pouvez également épeler \033 comme \e y \007 comme \a .

17voto

Konrad Points 665

Une solution peut-être plus simple consiste à utiliser la fonction interpolation de chaînes de caractères fonctionnalité offerte par iTerm 2. Fourniture :

\(currentTab.currentSession.path)

dans les paramètres entraînerait une modification du titre de la fenêtre. L'option est accessible via Preferences>>Profiles>>[Profile we need to modify]>>Window

settings Paramètres

RESULTS Titre de la fenêtre

2voto

jimminyjones Points 11

J'aime cette réponse de ce gist pour l'ajouter à la liste des onglet titre

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

2voto

rjb Points 1171

Vous pouvez assez facilement définir le titre de l'onglet dans iTerm2 sur MacOS comme étant le répertoire de travail actuel en plaçant ce qui suit dans votre fichier ~/.zshrc profil :

# Set iTerm Tab Title to Current Working Directory
DISABLE_AUTO_TITLE="true"

iterm_tab_title() {
  echo -ne "\e]0;${PWD##*/}\a"
}
add-zsh-hook precmd iterm_tab_title

Il utilise un precmd fonction crochet à exécuter avant chaque invite, en définissant le titre de l'onglet par l'affichage du répertoire de travail actuel.

Pour faire bonne mesure, quelques Oh My Zsh themes de jouer avec le titre de la fenêtre du terminal, c'est pourquoi l'option DISABLE_AUTO_TITLE="true" corrige ce problème.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X