답변1
여기에서 해결책을 찾았습니다.https://blog.callstack.io/supercharge-your-terminal-with-zsh-8b369d689770
# Open new tabs in same directory
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then
function chpwd {
printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}"
}
chpwd
fi
경로에서 수행되는 유일한 백분율 인코딩은 공백을 "%20"으로 바꾸는 것입니다. 이는 보다 강력한 인코딩으로 대체되어야 합니다.
답변2
파란색 텍스트를 클릭하세요.
따라서 터미널이 현재 위치를 알 수 있도록 이 작은 이스케이프 시퀀스를 프롬프트에 추가하기만 하면 됩니다. 단순한!
또는 이것이 다소 난해하다고 생각한다면 bash가 이를 어떻게 수행하는지 살펴보겠습니다. 검사 결과 man bash
bash가 대화형 로그인 셸(터미널 창이나 탭을 열 때 기본값이어야 함)로 호출될 때 참조하는 파일 중 하나는 /etc/profile
.
잠깐 살펴보면 /etc/profile
로딩 중이라는 것을 알 수 있습니다 /etc/bashrc
.
내부를 살펴보면 /etc/bashrc
로드를 시도하고 있음을 알 수 있습니다 /etc/bashrc_$TERM_PROGRAM
.
> echo $TERM_PROGRAM
Apple_Terminal
나중에 less /etc/bashrc_Apple_Terminal
최우수상이 있을 거예요! 상단 근처:
# Tell the terminal about the current working directory at each prompt.
다음은 이를 수행하는 함수로, (bash) 프롬프트에 포함될 수 있습니다. 합법성에 대해 완전히 확신할 수 없기 때문에 여기서는 함수를 중복하지 않을 것입니다. 하지만 합리적으로 사용하기에 충분히 간단하다고 믿기 때문에 함수의 마지막 줄을 포함하겠습니다.
printf '\e]7;%s\a' "file://$HOSTNAME$url_path"
이것은 기본적으로 기본 설정 창 팝업의 신비한 이스케이프 시퀀스입니다. 함수의 나머지 부분은 전적으로 $url_path
필요한 Percent_encoding으로 변수를 설정하는 것입니다. 이를 zsh로 변환하거나 외부 bash 스크립트로 추출하여 호출해야 합니다. 하지만 bash 인스턴스를 매번 시작할 때마다 프롬프트가 약간 느려질 수 있습니다.
답변3
다음 키보드 단축키를 수행하면 됩니다.
cmd + ctrl + o