Bash
にはPrompt_DIRTRIM
オプション。 Prompt_DIRTRIM=3
、次に次のような長いパス:
user@computer: /this/is/some/silly/path
代わりに次のように表示されます:
user@computer: .../some/silly/path
zsh
にも同様のオプションはありますか?
_...
_を含む同様の効果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
_
しかし、これは必ずしも悪いことではないかもしれません。
ここに示されている他の回答に加えて、%<
を使用して、パスを指定された数の文字に切り詰めることもできます。個々のパス要素自体は明らかに非常に長いため、%<n>d
を使用するよりもこれが望ましいと思います。 %<
を使用すると、はるかに予測可能な最大プロンプト長が得られます。
たとえば、チルド展開(%~
)を使用してパス要素を左に切り捨てて15文字にし、削除された文字を..
に置き換えるには、次のようにします。
Prompt='%n@%m:%15<..<%~%<<%# '
これは、Zshマニュアルの Prompt Expansion のページの右側に記載されています。
%3d
を使用できます プロンプト展開 :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
一般的な形式は%d
です。d
の後に正の整数が続く場合、現在のパスを示す末尾のコンポーネントを指定します。ゼロはパス全体を示し、負の整数は示す先頭のパスを示します。
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
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%