터미널이 기본 설정을 따르지 않는 이유는 무엇입니까?

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 -dzsh -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_Terminaladd-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설정 한 후크를 재정의하는지 여부 를 확인하십시오 .