My RPROMPT
diatur untuk menampilkan info svn menggunakan vcs_info
. Bunyinya RPROMPT=${vcs_info_msg_0_}
. vcs_info
disebut menggunakan precmd()
. Namun, RPROMPT tidak memperbarui ketika saya mengubah direktori. Ini hanya berfungsi jika saya memanggil prompt lagi (baik dengan sumber ~ / .zshrc atau prompt) dan tidak berubah pada chdir, kecuali saya memanggil prompt lagi. Apakah ada cara untuk mengubah perilaku ini?
11
setopt PROMPT_SUBST
telah terjadi sebelumnya dalam file. Kalau tidak, itu hanya akan menggemakan prompt secara harfiah.Menggunakan kutipan tunggal untuk menunda evaluasi berfungsi untuk mendefinisikan alias dinamis juga. Berikut ini alias,,
t
digunakan untuk melampirkan shell baru ke proses ssh agent yang ada, yang dimulai dengan aliasssh-start
yang menulis kode shell ke file di homedir:Definisi
t
itu buruk karena menyebabkan informasi baru dari tahap awalssh-start
diabaikan. Mengubah definisi aliast
untuk dikutip secara tunggal di .zshrc saya memberikan perilaku yang jauh lebih baik:Perhatikan perluasan definisi
t
seperti yang disediakan olehwhich t
, yang menunjukkan efek tanda kutip ganda (ekspansi langsung di tempat atau variabel lingkungan) vs tanda kutip tunggal (evaluasi tertunda perintah dan variabel).sumber