ITerm2 के लिए, मैं कैसे काम कर निर्देशिका निर्देशिका खिड़की शीर्षक में दिखाई देते हैं?


22

मैंने हाल ही में डिफ़ॉल्ट टर्मिनल ऐप से iTerm2 पर स्विच किया और एक प्रयोज्य समस्या है।

टर्मिनल पर, कार्यशील निर्देशिका आप प्रक्रिया और पिक्सेल आकार के साथ टाइटल बार पर शो करते हैं। उदाहरण के लिए, जब आप अलग-अलग टर्मिनल सत्रों के बीच स्विच करने के लिए विंडो पर क्लिक करते हैं, तो आप देखेंगे: working_directory - process - pixel_size।

ITerm2 पर, दुर्भाग्य से केवल प्रक्रिया बार बार में दिखाई देती है। इसलिए अगर मैं अलग-अलग निर्देशिकाओं में कई iTerm2 खिड़कियों में काम कर रहा हूं, तो मैं आसानी से अंतर नहीं कर सकता जो कि जब मैं एक को चुनने के लिए विंडो पर क्लिक करता हूं। मुझे पता है कि मैं आसानी से iTerm2 विंडो के बीच स्विच कर सकता हूं, जब मैं एक का चयन करता हूं, लेकिन मैं ठीक उसी विंडो को पहचानना चाहता हूं जो मैं अभी चाहता हूं। (वैसे, मैं चुड़ैल का उपयोग करता हूं, और कमांड-टैबिंग भी मदद नहीं करता है क्योंकि यहां फिर से केवल प्रक्रिया सूची में दिखाई देती है)।

कोई सुझाव? मैंने सभी वरीयताओं को देखा और कुछ भी नहीं देखा। प्रोफाइल बनाना वैसा नहीं है जैसा मैं बाद में हूं - मैं सिर्फ iTerm2 विंडो टाइटल में वर्तमान वर्किंग डायरेक्टरी देखना चाहूंगा।

जवाबों:


20

साथ \033]0;TEXT\007एस्केप अनुक्रम।

बाश में उपयोग का उदाहरण: echo -ne "\033]0;$PWD\007"

$PROMPT_COMMANDयदि आप बैश का उपयोग करते हैं, तो आप इसे अपने साथ जोड़ सकते हैं या अन्यथा आपको संलग्न कर सकते हैं, PS1इसलिए इसका अक्सर मूल्यांकन किया जाता है।

उदाहरण: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
यह काम। बस पांडित्यपूर्ण होने के लिए, ऊपर सूचीबद्ध निर्यात पंक्ति को अपनी ~ / .bashrc फ़ाइल में जोड़ें।
स्पेन्सर

यह कमाल का है। बहुत बहुत धन्यवाद; इससे मुझे यह समझने में मदद मिली कि उत्तर वास्तव में बैश प्रोग्रामिंग के बारे में है और इसका आईटर्म बनाम टर्मिनल से कोई लेना-देना नहीं है। किसी और के लिए अनुवर्ती के रूप में, कृपया faqs.org/docs/Linux-mini/Xterm-Title.html#s3 और linfo.org/echo.html देखें । एक बार फिर धन्यवाद!
whiny_nil

5
और पथ के अंतिम खंड को प्राप्त करने के लिए echo -ne "\033]0;${PWD##*/}\007"(धन्यवाद दिखाने के लिए github.com/barryclark/bashstrap के साथ )
एंथ्रोपिक

1
@ स्पेंसर: PROMPT_COMMAND शेल चर को निर्यात करने का कोई कारण नहीं है, और सामान्य तौर पर एक शेल चर को निर्यात नहीं करना चाहिए जब तक कि आपको शेल द्वारा चलाए जाने वाले प्रत्येक कार्यक्रम के साथ चर साझा करने की कोई विशिष्ट आवश्यकता न हो । डिफ़ॉल्ट रूप से, शेल द्वारा उपयोग किए जाने वाले चर निर्यात नहीं किए जाने चाहिए; केवल निर्यात चर जो अन्य प्रक्रियाओं को प्रेषित किए जाने के लिए हैं। ~/.bashrcहर इंटरेक्टिव शेल द्वारा चलाया जाएगा, इसलिए उन्हें इस स्क्रिप्ट द्वारा सेट किए गए वेरिएबल को इनहेरिट करने की आवश्यकता नहीं है।
क्रिस पेज

ठीक है, निर्यात है कि कैसे आप PROMPT_COMMAND का उपयोग करें ... और यह आम तौर पर जटिल चीजों के लिए बेहतर है लिंक
संकोची

2

मैं इस सवाल का जवाब चाहते इस सार को जोड़ने के लिए टैब शीर्षक

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

0

यदि आप zsh का उपयोग कर रहे हैं (जो कि macOS 10.15 में डिफ़ॉल्ट है), तो इसे अपने ~ / .zshrc में रखें।

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

तुम भी वर्तनी लिख सकता है \033के रूप में \eऔर \007के रूप में \a

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.