zshプロンプトで$ HOMEに〜を表示します。

zshプロンプトで$ HOMEに〜を表示します。

私のプロンプトは次のように設定されます。

PROMPT=%F{reset}[%F{blue}%2/%F{reset}]

2つの親ディレクトリを次のように表示します。

[foo/bar]

しかし、私が$HOME深い場所や任意のディレクトリにいるときに、$HOMEプロンプトが次のように表示されます。

[~]
[~/foo]

それぞれ交換する

[/Users/me]
[me/foo]

私はスティーブロッシュのようなものを試しました。collapse_pwd(そしてより簡単なバージョン:${PWD/#$HOME/~}記事にも言及されています)と他の同様のバージョンがありますが、最後の2つのディレクトリのみを表示できる柔軟性が失われます。

この問題を処理するには、上記の内容をどのように修正する必要がありますか$HOME?私のzshバージョンはzsh 5.0.0 (x86_64-apple-darwin12.0.0)OS X 10.8.2です。

答え1

zshこれには基本的なサポートがあります。%2~代わりに使用してください%2/%40<...<%~

autonamedirsオプションも参照してください:

$ l=/usr/local
$ PS1='%~$ '
~$ setopt autonamedirs
~$ cd /usr/local
~l$ 

(そうでない場合autonamedirsでもプロンプトを実行してcd ~l表示できます)。cd/usr/local~l

関連情報