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 bash
tampaknya 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 bash
hanya mencetak titik-titik dalam kasus itu. Begitu
/this/…/some/silly/path
dari pada
.../some/silly/path
Tapi ini mungkin bukan hal yang buruk.
PROMPT
variabel lingkungan di Anda .zprofile
, misalnya:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
dan benar-benar tidak perlu export
parameter 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 d
menentukan 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 %3d
atau %3~
, mis
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
sebagai.../a/b
ganti~/a/b
. Untuk memperbaikinya, Anda bisa menggunakan%(5~|…/%3~|%~)
.