터미널이 기본 설정을 따르지 않는 이유는 무엇입니까?
Dec 10 2020
지난주에 터미널이 "다음으로 새 탭 열기 : 동일한 작업 디렉토리"설정을 받아들이지 않았습니다. "새 창 ..."으로 테스트 한 결과 동일한 결과가 나왔습니다.
내 쉘은 zsh입니다.
Dan Rosenstark 의 답변에 따라이 작업 을 수행 할 수있었습니다. https://apple.stackexchange.com/a/340778/398648
# http://superuser.com/a/315029/4952
# Set Apple Terminal.app to resume directory... still necessary 2018-10-26
if [[ $TERM_PROGRAM == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]] {
function chpwd {
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
chpwd
}
그러나 : 나는 이것을 어떻게 스스로 결정할 수 있었는지 또는 어떻게 비슷한 문제를 디버깅 할 수 있었는지 모릅니다 .
터미널의 초기 단계가 무엇인지 알아내는 팁이나 트릭은 대단히 감사하겠습니다.
작동하지 않은 것 :
- 새 탭 또는 새 창 설정 전환
- , 파일
return
의 첫 번째 줄에서 이름 변경 또는 추가.zshrc
.zsh*
- 현재 작업 디렉토리에서 새 터미널 탭 열기의 모든 제안이 작동하지 않습니다.
기타 잠재적으로 유용한 정보 :
- 변경시 "동일한 프로필"/ "기본 프로필"설정이 적용됩니다.
- 쇼
pwd
의 첫 번째 줄로 추가.zshrc
하면 디렉토리가 이미/home/<myuser>
nix
최근에 관련된 일부 도구 및 프로젝트 (포함nix-darwin
)를 설치하고 제거했습니다.

메타 데이터 :
OS macOS Catalina 10.15.7 (19H2)
Terminal 2.10 (433)
zsh 5.7.1 (x86_64-apple-darwin19.0)
답변
3 MarlonRichert Dec 28 2020 at 03:43
스크린 샷에서 "Escape sequence…"를 클릭하면 다음을 볼 수 있습니다.

그러나 이것이 당신에게 말하지 않는 것은 이것이 일반적으로에서 /etc/zshrc_Apple_Terminal
호출되는 파일에서 처리된다는 것입니다 /etc/zshrc
. /etc/zshrc_Apple_Terminal
호출되는 것을 방지 하거나 시도하는 작업을 재정의 할 수있는 몇 가지 사항이 있습니다 .
- 당신은으로 zsh을 시작하는
zsh -d
나zsh -f
. - 당신은 파일이
${ZDOTDIR:-$HOME}/.zshenv
있거나${ZDOTDIR:-$HOME}/.zprofile
당신이 가지고setopt NO_rcs
있거나setopt NO_globalrcs
- 매개 변수
$TERM_PROGRAM
에 값이 없습니다Apple_Terminal
. - Zsh에는에 대한 읽기 액세스 권한이 없습니다
/etc/zshrc_Apple_Terminal
. - 때
/etc/zshrc_Apple_Terminal
공급됩니다 매개 변수가$INSIDE_EMACS
제로가 아닌. - 소싱 된 후
precmd
언젠가 함수를 정의한 다음에 정의 된 함수 를 재정의합니다 ./etc/zshrc_Apple_Terminal
add-zsh-hook
디버깅을 위해 수행 할 수있는 작업 :
- 비전 역 구성 파일없이 서브 쉘을 시작하고 버그가 발생하는지 확인하십시오.
이 서브 셸에서 문제가 발생하지 않으면 문제가 비전 역 도트 파일 어딘가에 있음을 의미합니다. 다음을 수행하여 이러한 파일 목록을 얻을 수 있습니다.cd $(mktemp -d); HOME=$PWD ZDOTDIR=$PWD zsh
ls ${ZDOTDIR:-$HOME}/.z(log(in|out)|profile|sh(env|rc))(-^/)
- Zsh를 다시 시작
exec zsh -vx
하고 처음부터 출력을 조사하여/etc/zshrc_Apple_Terminal
소스가 있는지 그리고 나중에precmd
설정 한 후크를 재정의하는지 여부 를 확인하십시오 .