Jawaban:
Untuk mendapatkan efek yang serupa bash, termasuk ..., coba:
%(4~|.../%3~|%~)
Ini memeriksa, jika path setidaknya 4 elemen panjang ( %(4~|true|false)) dan, jika benar, mencetak beberapa titik dengan 3 elemen terakhir ( .../%3~), jika path lengkap dicetak %~.
Saya perhatikan bahwa bashtampaknya mempersingkat jalur di direktori home secara berbeda, misalnya:
~/.../some/long/path
Untuk efek yang serupa, Anda mungkin ingin menggunakan:
%(5~|%-1~/…/%3~|%4~)
Ini memeriksa, apakah path lebih panjang dari 5 elemen, dan dalam kasus itu mencetak elemen pertama ( %-1~), beberapa titik ( /…/) dan 3 elemen terakhir. Ini tidak persis sama dengan jalur, yang tidak ada di direktori home Anda, juga akan memiliki elemen pertama di awal, sementara bashhanya mencetak titik-titik dalam kasus itu. Begitu
/this/…/some/silly/path
dari pada
.../some/silly/path
Tapi ini mungkin bukan hal yang buruk.
PROMPTvariabel lingkungan di Anda .zprofile, misalnya:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrcdan benar-benar tidak perlu exportparameter internal shell seperti PROMPT.
Selain jawaban lain yang diberikan di sini, Anda juga dapat menggunakan %<untuk memotong jalur ke sejumlah karakter tertentu . Saya menemukan ini lebih baik daripada menggunakan %<n>d, karena masing-masing elemen path mungkin cukup panjang dalam dirinya sendiri. Menggunakan %<hasil, panjang prompt maksimum yang jauh lebih dapat diprediksi.
Misalnya, untuk memotong-kiri elemen path dengan ekspansi tilde ( %~) hingga 15 karakter, menggantikan karakter yang dihapus dengan .., Anda dapat melakukan sesuatu seperti ini:
PROMPT='%n@%m:%15<..<%~%<<%# '
Ini didokumentasikan dalam manual Zsh di bawah Ekspansi Prompt , tepat di akhir halaman.
Anda dapat menggunakan %3d ekspansi cepat :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
Bentuk umumnya adalah %d, jika ada bilangan bulat positif yang mengikuti dmenentukan komponen tambahan untuk menunjukkan lintasan saat ini, nol berarti menunjukkan seluruh lintasan, bilangan bulat negatif berarti lintasan terkemuka untuk menunjukkan:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Lihat http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html atauman zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
Jadi untuk mendapatkan sesuatu yang mirip PROMPT_DIRTRIM=3, Anda bisa menggunakan %3datau %3~, mis
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/bsebagai.../a/bganti~/a/b. Untuk memperbaikinya, Anda bisa menggunakan%(5~|…/%3~|%~).