Untuk iTerm2, bagaimana cara membuat direktori kerja muncul di judul jendela?

22

Saya baru-baru ini beralih ke iTerm2 dari aplikasi Terminal default dan memiliki masalah kegunaan.

Di Terminal, direktori tempat Anda berada muncul di bilah judul bersama dengan proses dan ukuran piksel. Misalnya, ketika Anda mengklik Window untuk beralih di antara sesi Terminal yang berbeda, Anda akan melihat: working_directory - process - pixel_size.

Di iTerm2, sayangnya hanya proses yang ditampilkan di bilah judul. Jadi jika saya bekerja di beberapa jendela iTerm2 pada direktori yang berbeda, saya tidak dapat dengan mudah membedakan mana yang ketika saya klik pada Window untuk memilih satu. Saya tahu saya dapat dengan mudah beralih di antara jendela iTerm2 setelah saya memilih satu, tetapi saya ingin mengidentifikasi persis jendela mana yang saya inginkan segera. (Omong-omong, saya menggunakan Witch, dan tab-Command tidak membantu karena di sini sekali lagi hanya proses muncul pada daftar).

Ada saran? Saya melihat semua preferensi dan tidak melihat apa pun. Membuat profil tidak persis seperti apa yang saya cari - saya hanya ingin melihat direktori kerja saat ini di judul jendela iTerm2.

whiny_nil
sumber

Jawaban:

20

Dengan \033]0;TEXT\007urutan pelarian.

Contoh penggunaan di Bash: echo -ne "\033]0;$PWD\007"

Yang dapat Anda tambahkan ke Anda $PROMPT_COMMANDjika Anda menggunakan Bash, atau melampirkan Anda PS1sehingga sering dievaluasi kembali.

Contoh: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'

pendiam
sumber
1
Ini bekerja. Hanya untuk menjadi berlebihan, tambahkan baris ekspor yang tercantum di atas ke file ~ / .bashrc Anda.
Spencer
Ini luar biasa. Terima kasih banyak; ini membantu saya memahami bahwa jawabannya sebenarnya tentang pemrograman bash dan tidak ada hubungannya dengan iTerm vs Terminal. Sebagai tindak lanjut untuk orang lain, silakan lihat faqs.org/docs/Linux-mini/Xterm-Title.html#s3 dan linfo.org/echo.html . Terima kasih lagi!
whiny_nil
5
dan untuk mendapatkan hanya segmen terakhir dari jalur echo -ne "\033]0;${PWD##*/}\007"(dengan terima kasih kepada github.com/barryclark/bashstrap untuk menunjukkan jalannya)
Anentropic
1
@Spencer: Tidak ada alasan untuk mengekspor variabel shell PROMPT_COMMAND, dan secara umum orang tidak boleh mengekspor variabel shell kecuali Anda memiliki kebutuhan khusus untuk berbagi variabel dengan setiap program yang dijalankan oleh shell . Secara default, variabel yang digunakan oleh shell tidak boleh diekspor; hanya variabel ekspor yang dimaksudkan untuk ditransmisikan ke proses lain. ~/.bashrcakan dijalankan oleh setiap shell interaktif, sehingga mereka tidak perlu mewarisi variabel yang ditetapkan oleh skrip ini.
Chris Page
Nah, mengekspor adalah cara Anda menggunakan PROMPT_COMMAND ... Dan umumnya lebih baik untuk tautan
demure
2

Saya suka jawaban ini dari intisari ini untuk menambahkannya ke judul tab

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi
AshCooman
sumber
0

Jika Anda menggunakan zsh (yang merupakan default di macOS 10.15), letakkan ini di ~ / .zshrc Anda:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

Anda juga bisa mengeja \033sebagai \edan \007sebagai \a.

thakis
sumber