MinTTY to nowa domyślna konsola dla Cygwin.
Co to jest polecenie powłoki (coś, co mogę umieścić w .bashrc, a nawet lepiej w .zshrc), aby zmienić tytuł okna MinTTY?
Chciałbym, aby tytuł okna był ścieżką do bieżącego katalogu i aktualizował go, gdy przełączam katalogi w konsoli.
$PS1
) Zawiera już sekwencję kontrolną, która ustawia tytuł okna na użytkownik @ maszyna: katalog_działający.-T <title>
we właściwościach skrótu systemu Windows. Zobacz takżemintty man page
.Odpowiedzi:
Co jest nie tak
Następujące polecenie nie działało dla mnie:
Okazuje się, że moja domyślna instalacja Cygwin zawiera następującą definicję pytania w .bashrc:
Zauważ, że pierwsza część pytania (
\e]0;\w\a
) ustawia tytuł okna za każdym razem, gdy pojawia się pytanie.Rozwiązanie
Dodaj te linie,
.bashrc
które definiują 2 funkcje:Następnie możesz ustawić niestandardowy tytuł za pomocą tego polecenia:
lub możesz powrócić do domyślnych ustawień cygwina (bieżąca ścieżka) za pomocą tego polecenia:
Mam nadzieję że to pomoże
źródło
source ~/.bashrc
- w przeciwnym razie cygwin będzie nadal uruchamiał starą wersję bashrc, która była na dysku, gdy uruchomiono cygwin. - testowany naCygwin version 2.8.1 (64 bit)
- wersji 2017Możesz to zmienić za pomocą sekwencji kontrolnej xterm:
Zobacz: http://code.google.com/p/mintty/issues/detail?id=241
źródło
Umieść to w .zshrc:
Sekwencja znaków specjalnych w ustawieniach funkcji powoduje, że MinTTY zmienia tytuł okna.
W zsh , jeśli zdefiniujesz funkcję o specjalnej nazwie chpwd, będzie ona wywoływana po każdym chdir .
Działa na WinXP z Cygwin 1.7 i MinTTY z uruchomionym zsh.
źródło
settitle "$(pwd)@$HOST"
W bash, zmienną PROMPT_COMMAND można ustawić tak, aby zawierała wiele poleceń, oddzielonych średnikami. możesz użyć tego, aby dokonać tego samego ustawienia tytułu, jak opisano w innej odpowiedzi, która mówi o zsh.
źródło
źródło
Użyłem odpowiedzi Leonela, ale okazało się, że tytuł miga tylko wtedy, gdy to robi, co oznacza, że przynajmniej polecenie echa działa zgodnie z przeznaczeniem. Uruchomiłem zsh interaktywnie z włączonym trybem debugowania
Zmiana katalogu ewidentnie wywołuje inną funkcję wywoływaną
title()
poprecmd()
ichpwd()
skutecznie ją zastępuje. Więc podłączyłem to do mojego .zshrc i zadziałało.Jeśli wolisz używać
chpwd()
alboprecmd()
zamiast, po prostu wyłączyć funkcję napisów:title(){}
.źródło
Chciałem tylko udostępnić moje rozwiązanie tego problemu, ponieważ używam mintty do wykonania skryptu.
Mój miętowy skrót jest skonfigurowany jako:
Skrypt connect.sh, który napisałem, który jest wywoływany w powyższym skrócie, wyświetli monit o serwer, z którym chcę się połączyć, ORAZ wykona funkcję osadnika zdefiniowaną w skrypcie.
connect.sh
źródło
title
jeśli jej nie używasz?spróbuj dodać to do .bash_profile
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD/#$HOME/~}\007"'
Mi to pasuje.
źródło