Pertanyaan Cara mengatur judul terminal secara otomatis ke nama direktori tanpa jalur


Saat ini, judul bash terminal / tab saya disetel berdasarkan pada direktori tempat saya masuk. Misalnya:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

Ini tidak terlalu berguna jika saya memiliki banyak tab yang terbuka bersebelahan. Sebagai contoh, jika saya memiliki 4 tab dir yang di atas terbuka sisi-by-side, semua yang saya lihat adalah

bob@bobscomputer:~/i/had...

4 kali.

Saya ingin semua judul terminal saya diatur secara otomatis ke bagian terakhir dari jalan. Dalam contoh di atas, saya ingin judulnya

yesterday

Tentunya, judul harus berubah ketika saya mengubah direktori. Saya ingin melakukan ini tanpa mengubah prompt saya, jadi perintah dan judul terminal harus berbeda.

Apakah ada cara untuk melakukan ini?


10
2018-04-01 20:08


asal


Untuk ZSH, lihat di sini: superuser.com/a/1328085/122021 - LIttle Ancient Forest Kami


Jawaban:


Mengapa Anda ingin melakukannya tanpa memodifikasi variabel PS1 Anda? Itu adalah cara yang benar untuk melakukannya.

Jika Anda menjalankan yang berikut, Anda akan mendapatkan apa yang Anda inginkan:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Ini hanya mengambil prompt default:

export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

... dan diganti \u@\h: \w dengan \W.

Anda dapat melakukan hal yang sama dengan perintah apa pun yang menggemakan kode pelarian yang benar:

echo -en "\e]0;${PWD##*/}\a"

... tetapi kemudian Anda akan terus bertarung untuk menghentikannya menggunakan PS1 (cara terbaik).


9
2018-04-03 02:23



Terima kasih - Saya tidak menyadari PS1 menyetel judul dan perintah secara independen. Dalam .bashrc saya, di bawah huruf "$ TERM" dalam xterm * | rxvt *), saya menetapkan PS1 = "[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1", dan itu persis apa yang saya inginkan. - Staring Frog
Pertanyaan ini bagus untuk menjelaskan apa arti semua gobbledygook PS1: askubuntu.com/questions/404341/… - congusbongus


Iya nih. Siapkan: \[\e]0;\W\a\] ke PS1 Anda. Ini tidak akan mengubah tampilan prompt Anda, tetapi secara otomatis akan mengatur judul tab terminal Anda ke nama dasar direktori kerja saat ini.


2
2018-01-18 18:47