Yanıtlar:
Benzer bir etki elde etmek için bash
, aşağıdakileri içerir ...
:
%(4~|.../%3~|%~)
Bu, yolun en az 4 eleman uzunluğunda ( %(4~|true|false)
) olup olmadığını kontrol eder ve eğer doğruysa, son 3 elemanla ( .../%3~
) bazı noktalar yazdırır , aksi takdirde tam yol yazdırılır %~
.
Bunu farkettim bash
örneğin, farklı ev dizininde yolları kısaltmak gibi görünüyor:
~/.../some/long/path
Benzer bir etki için, aşağıdakileri kullanmak isteyebilirsiniz:
%(5~|%-1~/…/%3~|%4~)
Bu, yolun 5 öğeden uzun olup olmadığını kontrol eder ve bu durumda ilk öğeyi ( %-1~
), bazı noktaları ( /…/
) ve son 3 öğeyi yazdırır . Ana dizininizde olmayan yollarla tam olarak aynı değildir, başlangıçta ilk öğeye de sahip olurken, bash
yalnızca bu durumda noktalar yazdırılır. Yani
/this/…/some/silly/path
onun yerine
.../some/silly/path
Ancak bu mutlaka kötü bir şey olmayabilir.
PROMPT
ortam değişkeninizle birlikte kullanmak istersiniz .zprofile
, örneğin:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
ve gerçekten export
kabuk iç parametrelerine gerek yoktur PROMPT
.
Burada verilen diğer cevaplara ek olarak, %<
belirli sayıda karaktere giden yolu kısaltmak için de kullanabilirsiniz . Bunu kullanmak için tercih edilir buluyorum %<n>d
, çünkü bireysel yol elemanları kendi başlarına oldukça uzun olabilir. Kullanmak %<
çok daha öngörülebilir bir maksimum istem uzunluğu sağlar.
Örneğin, %~
kaldırılan karakterlerin yerine tilde genişletme ( ) ile yol öğesini 15 karaktere kadar kısaltmak ..
için şöyle bir şey yapabilirsiniz:
PROMPT='%n@%m:%15<..<%~%<<%# '
Bu, Zsh kılavuzunda sayfanın sonundaki İstem Genişletme altında belgelenmiştir .
%3d
Hızlı genişletmeyi kullanabilirsiniz :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
Genel form, %d
herhangi bir pozitif tamsayı takip d
geçerli yolu göstermek için arka bileşenleri belirtirse, sıfır ortalama tüm yolu gösterir, negatif tamsayı gösterilecek öncü yol anlamına gelir:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Bkz. Http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html veyaman 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 ‘~’.
Yani benzer bir şey almak için PROMPT_DIRTRIM=3
şunu kullanabilirsiniz %3d
ya %3~
, mesela
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
olduğu.../a/b
yerine~/a/b
. Bunu düzeltmek için kullanabilirsiniz%(5~|…/%3~|%~)
.