回答:
同様の効果を得るにはbash
、を含めて...
みてください:
%(4~|.../%3~|%~)
これは、パスが少なくとも4要素の長さ(%(4~|true|false)
)であるかどうかをチェックし、trueの場合、最後の3要素でいくつかのドットを印刷します(.../%3~
)、そうでない場合はフルパスが印刷され%~
ます。
bash
ホームディレクトリのパスを短くするように見えることに気づきました、例えば:
~/.../some/long/path
同様の効果を得るには、次を使用できます。
%(5~|%-1~/…/%3~|%4~)
これは、パスが5要素より長いかどうかをチェックし、その場合、最初の要素(%-1~
)、いくつかのドット(/…/
)、最後の3要素を印刷します。ホームディレクトリにないパスとはまったく同じではなく、先頭に最初の要素がありますが、bash
その場合はドットだけが印刷されます。そう
/this/…/some/silly/path
の代わりに
.../some/silly/path
しかし、これは必ずしも悪いことではないかもしれません。
PROMPT
場合は、この構文をの環境変数とともに使用します.zprofile
。例:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
必要がありexport
、シェルのような内部パラメータは必要ありませんPROMPT
。
ここで与えられた他の回答に加えて、あなたも使用することができ%<
、所与の数のパスを切り捨てる文字。%<n>d
個々のパス要素は明らかに長いので、これを使用するよりもこれが好ましいと思います。使用%<
すると、はるかに予測可能な最大プロンプト長が得られます。
たとえば、チルダ展開(%~
)を使用してパス要素を15文字に左切り捨てし、削除された文字を..
に置き換えるには、次のようにします。
PROMPT='%n@%m:%15<..<%~%<<%# '
これは、Zshマニュアルのページの最後にあるPrompt Expansionで文書化されています。
参照してくださいhttp://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.htmlかman 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 ‘~’.
に似たものを取得するにはPROMPT_DIRTRIM=3
、%3d
またはを使用できます%3~
、たとえば
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
として表示されることに注意してください。これを修正するには、を使用できます。.../a/b
~/a/b
%(5~|…/%3~|%~)