전화를 걸면 cd /Users/mu3/apps
프롬프트가 다음과 같이 단순화됩니다.
mu3 [~/apps]:
다음과 같은 사용자 정의 경로로 동일한 작업을 수행할 수 있습니까 cd /Users/mu3/Development/Web/test
?
mu3 [DEV/test]:
iTerm + oh-my-zsh를 사용하고 있습니다.
UPD: 저는 충분히 구체적이지 않았고 새로운 정보도 발견했습니다.
내가 사용하기 때문에agnoster
주제는zsh
프롬프트 자체를 처리하는 쉘입니다.
그래서 결국 나는 변했다이 줄:
prompt_segment blue black '%~'
이와 관련하여:
PWDshort="${PWD/#$HOME/~}"
PWDshort="${PWDshort/\~\/_cld\/Dropbox\/Dev\/Web/DEV}"
prompt_segment blue black $PWDshort
이제 문제는 모든 업데이트가 분명히 이것을 깨뜨릴 것이라는 것입니다.
동일한 결과를 얻는 더 좋은 방법이 있습니까?
답변1
프롬프트에 대한 디렉토리 약어를 정의하는 표준 방법은 다음을 사용하는 것입니다.이름 디렉터리. 확장 시 명명된 디렉터리 사용%~
~
홈 디렉터리를 축약하고 ~bob
Bob의 홈 디렉터리를 축약하는 것으로 요약된 프롬프트 이스케이프 시퀀스입니다 .
mu3 [~]: cd /Users/mu3/Development/Web/test
mu3 [~/Development/Web/test]: hash -d test=$PWD
mu3 [~test]: cd config
mu3 [~test/config]:
일반적인 접근 방식은 단축된 프롬프트에 사용되는 것 외에도 이름이 지정된 디렉터리를 사용하여 경로를 단축할 수도 있습니다. 예를 들어 해당 디렉터리로 전환하려면 를 hash -d test=~/Development/Web/test
실행할 수 있습니다..zshrc
cd ~test
이 방법을 사용하면 축약형이 항상 로 시작됩니다 ~
.
답변2
에서와 같이 프롬프트의 기능을 사용할 수 있습니다 bash
. 예는 다음과 같습니다.
setopt PROMPT_SUBST
print_dir(){
case $PWD in
(*/Development*)
echo DEV/${PWD:t}
;;
(*)
echo $PWD
;;
esac
}
export PROMPT=$'[$(print_dir)]: '
이것zshall
매뉴얼 페이지 문서 PROMPT_SUBST
:
이 옵션을 설정 하면
PROMPT_SUBST
프롬프트 문자열이 먼저 실행됩니다.매개변수 확장,명령 대체그리고산술 확장. 바라보다zshexpn(1).