zshプロンプトでパスを短くする

zshプロンプトでパスを短くする

BashPROMPT_DIRTRIM私が設定したときと同じオプションがあり、PROMPT_DIRTRIM=3次のような長いパスがあります。

user@computer: /this/is/some/silly/path

次のように表示されます。

user@computer: .../some/silly/path

同様のオプションがありますかzsh

ベストアンサー1

bashinclude と同様の効果を得るには、...以下を試してください。

%(4~|.../%3~|%~)

変数の位置(設定で名前を付けることPROMPTもできます)これは、パスの長さが少なくとも4つの要素であることを確認し()、trueの場合は最後の3つの要素の一部を印刷し()、それ以外の場合はパス全体()を印刷します。します。PS1%~%(4~|true|false).../%3~%~


私はこれがbashホームディレクトリへのパスをいくつかの方法で短縮することがわかりました。たとえば、次のようになります。

~/.../some/long/path

同様の効果を得るには、次のものを使用できます。

%(5~|%-1~/…/%3~|%4~)

これは、パスの長さが少なくとも5つの要素であることを確認し、その場合、最初の要素(%-1~)、いくつかの点(/…/)、および最後の3つの要素を印刷します。これはホームディレクトリにないパスとまったく同じではなく、最初に最初の要素があり、bashその場合はドットのみが印刷されます。だから

/this/…/some/silly/path

変える

.../some/silly/path

しかし、それは必ずしも悪いわけではありません。


代わり%~に使用することもできます%d(またはPROMPT現在すでに使用している可能性があります%d)。違いは、絶対%dパス全体を表示し、%~「名前付きディレクトリ」の略語を表示することです。例: /home/youruserbe~および/home/otheruserbe ~otheruser。短縮の基準としてフルパスを使用するには、すべての項目~d

おすすめ記事