Wie kann Console2 das aktuelle Verzeichnis als Namen einer Bash-Registerkarte verwenden?

2941
Tobias Kienzler

Ist das überhaupt möglich? (Im Grunde ein Pendant zu cmd.exes titleBefehl, den Mikel in der Antwort erwähnt, obwohl ich lieber den gesamten Tab-Namen ändern würde, anstatt einen Fenstertitel hinzuzufügen.)

4

2 Antworten auf die Frage

4
Mikel

In scheinen bashdie standardmäßigen Xterm-Sequenzen, die unter How to change the title of xterm dokumentiert sind, zu funktionieren, z

echo -e "\033]0;custom title\007"; cat 

Fügen Sie also das zu Ihrer oder PS1Ihrer .bashrcKonfigurationsdatei hinzu, zB:

PS1="\033]0;\$PWD\007$PS1" 

oder verwenden Sie PROMPT_COMMANDstattdessen, wenn Sie verwenden bash.


In cmd.exekönnen Sie title <string>den Titel einstellen.

Sie würden es mit einem doskey- Alias ​​wie folgt verketten :

doskey cd=title $1 ^&^& cd $1 

Legen Sie dann fest, dass für jedes Neue cmddie Anweisungen in DOSKEY automatisch mit CMD laden geladen werden .


Um in beiden Fällen nur den Fenstertitel anzuzeigen, Settings->Appearanceaktivieren Sie das
Use console window title*Kontrollkästchen.

Ich fürchte, "title" ist ein integrierter Bestandteil von cmd.exe, also beansprucht bash "bash: title: command not found" :(, aber es funktioniert für cmd.exe, also +1 Tobias Kienzler vor 13 Jahren 0
Danke für das Update - wow, ist Doskey noch in der Nähe? Hm, ich würde wahrscheinlich zuerst `doskey alias = doske` Tobias Kienzler vor 13 Jahren 0
Ja, meine ursprüngliche Antwort war nur für "cmd". Ich habe es mit Anweisungen für `bash` aktualisiert. Mikel vor 13 Jahren 0
Ihre aktuelle Lösung ändert das Arbeitsverzeichnis nicht. Verwenden Sie 'PS1 =' \ 033] 0; \ u @ \ h: \ w \ 007 '$ PS1' führt den Trick aus Tobias Kienzler vor 13 Jahren 0
Sorry, ja, es fehlte ein Backslash. Es ist jetzt behoben. Mikel vor 13 Jahren 0
@Tobias: fwiw, heutzutage ist `doskey` nur ein dünner Wrapper für Console API. grawity vor 13 Jahren 0
1
browniebytes

Schon eine Weile, aber der einzige Beitrag, der mein Problem meistens beantwortet hat.
Aufbauend auf der Antwort von Mikel und dem Kommentar von Tobias, fügte er hinzu

PS1='\[\033]2;\u:\w\007\]'$PS1

bis ~/.bashrcerlaubt consoleZ (Nachfolger Console2) zu zeigen, den Shell - Titel in der consoleZ Registerkarte und nicht durcheinander bringen Zeilenumbruch in der Schale.

"Beachten Sie die Verwendung von \[...\], die bash anweist, die nicht druckenden Steuerzeichen zu ignorieren, wenn Sie die Breite der Eingabeaufforderung berechnen. Andernfalls werden die Zeilenbearbeitungsbefehle beim Platzieren des Cursors verwirrt."
http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss4.3