Cara mengatur judul terminal secara otomatis ke nama direktori tanpa jalur

11

Saat ini, judul terminal / tab bash saya diatur 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 berdampingan. Sebagai contoh, jika saya memiliki 4 tab dir di atas terbuka berdampingan, yang saya lihat adalah

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

4 kali.

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

yesterday

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

Apakah ada cara untuk melakukan ini?

Menatap Katak
sumber
Untuk ZSH, lihat di sini: superuser.com/a/1328085/122021
LAFK mengatakan Reinstate Monica

Jawaban:

11

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

Jika Anda menjalankan yang berikut ini, Anda akan mendapatkan 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 ganti \u@\h: \wdengan \W.

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

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

... tapi kemudian Anda akan terus berjuang untuk menghentikannya agar tidak menggunakan PS1 (cara terbaik).

Steven K.
sumber
2
Terima kasih - Saya tidak menyadari PS1 menetapkan judul dan meminta secara mandiri. Dalam .bashrc saya, dalam kasus "$ TERM" di xterm * | rxvt *), saya mengatur PS1 = "[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1", dan ia melakukan persis apa yang saya inginkan.
Staring Frog
Pertanyaan ini melakukan pekerjaan yang baik untuk menjelaskan apa arti semua makna gobbledygook
congusbongus
3

Iya. Prepend: \[\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 merek direktori kerja saat ini.

SukaTheRock
sumber