सवाल बैश + iTerm2 के साथ, टैब का नाम कैसे लगाएं?


ITerm2 (1.0.0.20120203 बनाएँ) में, मैं आम तौर पर कई टैब खोलता हूं, जिनमें से प्रत्येक में विभाजित पैन होते हैं, और काम के बारे में एक विशेष विषय है, उदाहरण के लिए संशोधन नियंत्रण, कोडिंग, फाइलों का प्रबंधन, mysql टर्मिनल काम। मुझे आमतौर पर अपने काम प्रवाह में 5 या अधिक टैब के बीच स्विच करने की आवश्यकता होती है। कभी-कभी याद रखना मुश्किल होता है या बताता है कि स्क्रीन की सामग्री को देखकर कौन सा है। मैं किसी भी तरह से टैब का नाम देना चाहता हूं, इसलिए मैं जल्दी से बता सकता हूं कि कौन सा तेजी से चमक रहा है। क्या यह संभव है?


157
2018-05-02 19:08


मूल


के संभावित डुप्लिकेट Zsh में iTerm2 विंडो और टैब शीर्षक बदलें - Daniel Beck♦
पूरी तरह से डुप्लिकेट नहीं है। तो टैब शीर्षक के हिस्से के रूप में वर्तमान में चल रहे ऐप को कैसे जोड़ना है? अर्थात। कौन सा टैब emacs, mysql, आदि चला रहा है? - qazwsx
अर्थात। मेरे सभी टैब में एक ही मेजबान और उपयोगकर्ता है। तो उन का उपयोग करके मेरे टैब को अलग नहीं किया जाएगा। - qazwsx
तुम्हारा मतलब है कि आप चाहते हैं वर्तमान नौकरी का नाम दिखाएं iTerm की प्राथमिकताओं से? ध्यान दें कि लिंक किया गया विषय उपयोगकर्ता नाम या होस्ट के बारे में नहीं है। - Daniel Beck♦
ठीक है, मैं कुछ संकेत दिखाना चाहता हूं कि प्रत्येक टैब में कौन सा प्रोग्राम चल रहा है या चलाया गया है। साथ ही, अन्य पोस्ट में दिया गया समाधान Bash + iTerm2 के लिए काम नहीं करता है। - qazwsx


जवाब:


चूंकि आप मैक पर iterm2 का उपयोग कर रहे हैं, एक और विकल्प यह है कि आप बस हिट कर सकते हैं cmdमैं, कुछ टाइप करें, और हिट करें ESC

टर्मिनल समाधान इससे थोड़ा तेज है, लेकिन सिर्फ आपको बताना चाहता था।


191
2017-08-08 15:29



यह एक सेकंड के लिए काम करता है जब तक कि मैं उस टैब पर रिटर्न जारी नहीं करता जिसे मैंने बदला है। - Stewie
@Stewie प्राथमिकताओं में -> प्रोफाइल -> टर्मिनल, अनचेक करें "टर्मिनल को विंडो शीर्षक की रिपोर्ट करने दें"। - Max Cantor
यह अनचेक है। यह अभी भी शीर्षक का नाम बदलता है। - Stewie
@SteveBennett यह "विषय" नहीं है (वास्तव में शब्द "प्रोफ़ाइल" है) स्वयं; सीएमडी + आई कमांड "वर्तमान सत्र संपादित करें ..." (व्यू मेनू के तहत) है, इसलिए यह उस टैब के प्रोफाइल के उदाहरण को बदल रहा है। एस्केप से बचने से बस विंडो बंद हो जाती है, जिसकी आवश्यकता होती है क्योंकि उस विंडो में "सेव" बटन नहीं होता है। - MidnightLightning
क्या होगा यदि आपके पास एकाधिक पैन खुले हैं? क्या आपको टैब को पूरी तरह नाम देने के लिए प्रत्येक का नाम बदलना होगा? - theicfire


मुझे निम्नलिखित फ़ंक्शन मिल गया है, जो मेरे अंदर रखा गया है ~/.bashrc सहायक होना:

function title {
    echo -ne "\033]0;"$*"\007"
}

फिर मैं इसे अपने बैश प्रॉम्प्ट से निम्नानुसार कॉल कर सकता हूं:

> title I want a pony!

और मेरा टैब तदनुसार शीर्षक मिलता है।


109
2018-05-23 17:57



मैंने कोशिश की, लेकिन यह अभी भी काम नहीं करता है। मैंने इस परिभाषा को अंदर रखा है bash_aliases, और इसे लोड किया है .profile (if [ -f ${HOME}/.bash_aliases ]; then . ${HOME}/.bash_aliases fi) परन्तु फिर title dog टैब शीर्षक को "कुत्ते" में नहीं बदला - qazwsx
+1 - मैंने / etc / profile में मेरा जोड़ा है, यही कारण है कि मेरे उपनाम हैं ... आपके द्वारा किए जाने के बाद फ़ाइल को स्रोत करना न भूलें। नोट: यह टर्मिनल में भी काम करता है। - blak3r
बहुत मददगार। मैं एक टट्टू चाहता था; और मुझे एक मिला! - SoEzPz
मैंने अपना .bash_profile में रखा, फिर से शुरू किया और यह एक आकर्षण की तरह काम किया। - C Johnson
zsh के लिए भी काम करता है - Sagar Jauhari


अपने टैब या विंडो का शीर्षक सेट करने के लिए इस कमांड को चलाएं:

export PROMPT_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'

मैंने निम्नलिखित को जोड़ा है ~/.bash_profile हमेशा मेरे घर डीआईआर के सापेक्ष वर्तमान निर्देशिका को सूचीबद्ध करने के लिए:

export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'

उपयोगी जब आपके डॉक में 100 न्यूनतम टर्मिनलों हैं

मैक दुनिया के लिए टोपी टिप


40
2018-03-04 00:33



काम करता है! बस ध्यान रखें कि या तो .bashrc या .bash_profiles लोड हो सकते हैं और दोनों एक साथ नहीं। मेरे पास पहले से ही .bash_profiles फ़ाइल थी इसलिए मुझे इसे इस फ़ाइल में पेस्ट करना पड़ा। धन्यवाद। - therealmarv
धन्यवाद! मैंने इसका मिलान करने के लिए उत्तर अपडेट किया है। मेरे पास .bash_profile में "स्रोत ~ / .bashrc" है और भूल जाओ कि यह आम नहीं है - schpet


इस समारोह को अपने आप में जोड़ें ~/.bash_profile फ़ाइल और यह काम करना चाहिए।

function title ()
{
    TITLE=$*;
    export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}

15
2017-10-24 03:26





मैंने उपरोक्त के समान समाधानों का उपयोग थोड़ी देर के लिए किया था, लेकिन मैं पर्याप्त टैब का उपयोग करता हूं जो मैं उन्हें आसान दृश्य संदर्भ के लिए रंग-कोडित भी चाहता हूं। तो मैंने चाबुक किया tabset, प्रत्येक टैब में जो काम मैं कर रहा हूं उसके आधार पर टैब शीर्षक, बैज और रंग सेट करने के लिए उपयोगिता।

example

इसकी जरूरत है नोड, लेकिन अब यह एक सामान्य रूप से स्थापित मंच है। स्थापित करने के लिए:

npm install -g iterm2-tab-set

12
2018-06-15 14:19



यह कमाल का है! मैं विशेष रूप से टैब रंग की ऑटो सेटिंग प्यार करता हूँ। धन्यवाद! - Ashutosh Jindal


मैं यह पसंद है:

#setup terminal tab title
function title {
    if [ "$1" ]
    then
        unset PROMPT_COMMAND
        echo -ne "\033]0;${*}\007"
    else
        export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
    fi
}
title

यह आपको कस्टम नाम और आपके सीडब्ल्यूडी के डिफ़ॉल्ट के बीच एक टैब का नाम टॉगल करने देगा।

title -> आपका टैब शीर्षक होगा ~/YOUR_CWD/

title hey there -> आपका टैब शीर्षक होगा hey there


6
2017-07-26 15:29



ध्यान दें कि जैसा है, यह clobber होगा iTerm खोल एकीकरण। - Michael


मैं वास्तव में पसंद करता हूं टेलरस्टीन का जवाब, लेकिन यह iTerm2 टूटता है खोल एकीकरण जो पर निर्भर करता है PROMPT_COMMAND चर। आप इसे जोड़कर इसे ठीक करने के लिए टेलर के कोड को संशोधित कर सकते हैं __bp_precmd_invoke_cmd वापस में PROMPT_COMMAND किसी भी समय आप इसके साथ झुकाव:

# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
    if [ "$1" ]
    then
        export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
        echo -ne "\033]0;${*}\007"
    else
        export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/\~}\007";__bp_precmd_invoke_cmd'
    fi
}
title

4
2018-03-30 14:45





मुझे पसंद है माइकल जवाब।

पर क्या अगर .iterm2_shell_integration.bash अस्तित्व में नहीं है?

मेरा लेना यहाँ है:

# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"

# iTerm2 tab titles
function title {
  if [ "$1" ] ; then
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
      || unset PROMPT_COMMAND
    echo -ne "\033]0;${*}\007"
  else
    test -e "${HOME}/.iterm2_shell_integration.bash" \
      && export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007";iterm2_preexec_invoke_cmd' \
      || export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
  fi
}
title

3
2018-05-23 13:21



ध्यान दें कि v3.1 में, iterm2_preexec_invoke_cmd बन गया है __bp_precmd_invoke_cmd - Michael


यदि आप प्रोफाइल के साथ काम कर रहे हैं (जो बहुत सुविधाजनक है): प्राथमिकताएं -> उपस्थिति -> विंडो और टैब शीर्षक: 'प्रोफ़ाइल नाम दिखाएं' पर टिकटें:

image

इस तरह यह देखता है:

thumbnail linked to main image


2
2018-01-24 20:45