टर्मिनल प्राथमिकताओं का सम्मान क्यों नहीं करता है?
पिछले हफ्ते में कुछ समय के लिए मेरे टर्मिनल ने "नए टैब के साथ खुला: समान कार्य निर्देशिका" सेटिंग का सम्मान करना बंद कर दिया। "नई खिड़कियां ..." के साथ परीक्षण ने एक ही परिणाम दिया।
मेरा खोल zsh है।
मैं डैन रोसेनस्टार्क के एक उत्तर का अनुसरण करके इसे प्राप्त करने में सक्षम था 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)
जवाब
यदि आप उस स्क्रीनशॉट में "एस्केप सीक्वेंस ..." पर क्लिक करते हैं, तो आपको निम्नलिखित देखने को मिलेंगे:

हालांकि, यह आपको नहीं बताता है कि फ़ाइल में सामान्य रूप से इस बात का ध्यान रखा /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
हुक को सेट करता है।