Bash
PROMPT_DIRTRIM
내가 설정할 때와 같은 옵션이 있고 PROMPT_DIRTRIM=3
다음과 같은 긴 경로가 있습니다.
user@computer: /this/is/some/silly/path
다음과 같이 표시됩니다.
user@computer: .../some/silly/path
비슷한 옵션이 있나요 zsh
?
답변1
bash
include와 유사한 효과를 얻으려면 ...
다음을 사용해 보십시오.
%(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/youruser
be ~
및 /home/otheruser
be ~otheruser
. 단축의 기준으로 전체 경로를 사용하려면 모든 항목 ~
을 d
.
답변2
여기에 제공된 다른 답변 외에도 %<
주어진 수의 사용 경로를자를 수도 있습니다수치. %<n>d
개별 경로 요소 자체가 분명히 길 수 있으므로 를 사용하는 것보다 이것이 더 좋습니다 . 를 사용하면 %<
최대 프롬프트 길이를 더 예측할 수 있게 됩니다.
예를 들어, 물결표 확장( %~
)을 사용하여 경로 요소를 왼쪽에서 15자로 자르고 제거된 문자를 다음으로 바꾸려면 ..
:
PROMPT='%n@%m:%15<..<%~%<<%# '
이것은 Zsh 매뉴얼에 문서화되어 있습니다.급속한 확장, 페이지 끝에 있습니다.
답변3
바라보다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 ‘~’.
따라서 와 같은 것을 얻으려면 or 를 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%
답변4
당신은 그것을 사용할 수 있습니다%3d
급속한 확장:
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
일반적인 형식은 표시할 현재 경로의 후행 구성 요소를 지정하는 %d
양의 정수가 뒤에 오는 경우 0은 전체 경로가 표시됨을 의미하고 음의 정수는 표시할 선행 경로를 나타냅니다.d
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $