zsh 프롬프트에서 $HOME에 대해 ~를 표시합니다.

zsh 프롬프트에서 $HOME에 대해 ~를 표시합니다.

내 프롬프트는 다음과 같이 설정됩니다.

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

두 개의 상위 디렉토리를 다음과 같이 표시합니다.

[foo/bar]

그러나 내가 $HOME깊은 곳이나 어떤 디렉토리에 있을 때 $HOME프롬프트가 다음과 같이 나타나기를 원합니다.

[~]
[~/foo]

각각 교체하다

[/Users/me]
[me/foo]

나는 Steve Losh와 같은 것을 시도했습니다.collapse_pwd(그리고 더 간단한 버전: ${PWD/#$HOME/~}기사에도 언급됨) 및 기타 유사한 버전이 있지만 마지막 두 디렉터리만 표시할 수 있는 유연성이 손실됩니다.

이 문제를 처리하려면 위의 내용을 어떻게 수정해야 합니까 $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

관련 정보