Mintty est la nouvelle console par défaut pour Cygwin.
Qu'est-ce qu'une commande shell (quelque chose que je peux mettre en .bstrucc, voire mieux, en .zshrc) pour changer le titre de la fenêtre de la mienté?
J'aimerais que le titre de la fenêtre soit le chemin du répertoire actuel et l'avoir mis à jour en tant que répertoires de commutation dans la console.
Qu'est-ce qui ne va pas
Le commandement suivant ne fonctionnait pas pour moi:
echo -ne "\e]0;MYTITLE\a"
Il s'avère que mon installation de cygwin par défaut inclut la définition rapide suivante dans .CASHRC:
PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$
Notez que la première partie de l'invite (\e]0;\w\a
) permet de définir le titre Windows à chaque fois que l'invite apparaît.
la solution
Ajoutez ces lignes dans votre .bashrc
qui définissent 2 fonctions:
function settitle() {
export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
echo -ne "\e]0;$1\a"
}
function settitlepath() {
export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
}
Ensuite, vous pouvez définir un titre personnalisé avec cette commande:
settitle "MYWonderfullTest here"
ou vous pouvez revenir à la valeur par défaut de Cygwin (le chemin actuel) avec cette commande:
settitlepath
J'espère que cela t'aides
Vous pouvez le changer avec la séquence de contrôle Xterm pour cela, comme si:
echo -ne '\e]0;Title\a'
Reportez-vous à: http://code.google.com/p/mintty/issues/detail?id=241
Placez cela dans .zshrc:
# Change title of MinTTY to current dir
function settitle() {
echo -ne "\033]2;"$1"\007"
}
function chpwd() {
settitle $(cygpath -m `pwd`)
}
La séquence de caractères spéciaux dans la fonction Settitle fait de la mIlty changer le titre de la fenêtre.
Dans ZSH , si vous définissez une fonction avec le nom spécial CHPWD, il sera invoqué après chaque CHDIR .
Travaille sur WinXP, avec Cygwin 1.7 et Mintty exécutant ZSH.
[ $ PS1 si nécessaire mais garde la variable $ {Terminal_title} dans la condition "False". [.____] 3) Enregistrez le fichier et définissez la variable d'environnement Terminal_tile, comme dans [.____] Exporter terminal_title = "mon titre personnalisé "[.____] 4) Source Vos profil Bash, comme dans . ~/.bash_profile Profitez de [.____] [-Z.] Si [-Z "$ {Terminal_title}"] alors [.\\ e] 0;\w\a\a \]\n\[\ e [32m \]\u @\h\[\ e [33m \]\w\[\ e [0m \]\n\$ ' sinon.] ps1 = '\\[\ e] 0; $ {terminal_title}\a \]\n\[\ e [32m \]\u\\\[\ e [33m \]\w\[\ e [0m \]\n\$ ' fi
J'ai utilisé la réponse de Leonel, mais j'ai trouvé que le titre ne tirette que lors de cela, ce qui signifie que au moins la commande ECHO fonctionne comme prévu. J'ai ran zsh de manière interactive avec le mode de débogage activé en utilisant
zsh -xv
Changer le répertoire invoque évidemment une autre fonction appelée title()
après precmd()
et chpwd()
_, en les priant efficacement. J'ai donc branché cela dans mon .zshrc et cela a fonctionné.
function settitle() {
echo -ne "\033]2;"$1"\007"
}
function title() {
settitle $(cygpath -m `pwd`)
}
Si vous préférez utiliser chpwd()
ou precmd()
Au lieu de cela, désactivez simplement la fonction Titre: title(){}
.