답변:
를 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 설명서의 프롬프트 확장 아래에 설명되어 있습니다.
참조 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~|%~)