क्या मैं tmux विंडो के लिए एक डिफ़ॉल्ट शीर्षक सेट कर सकता हूं?


38

अभी यह शीर्षक reattach-to-user-namespace(OS X) डिफॉल्ट करता है, जो बहुत कष्टप्रद है। क्या कोई विकल्प है जिसे मैं tmux.confदूसरे डिफ़ॉल्ट शीर्षक को प्राप्त करने के लिए रख सकता हूं ?

यदि नहीं, तो मैं एक कुंजी बंधन कैसे बनाऊंगा जो एक नई विंडो बनाता है और फिर मुझे एक नाम के लिए संकेत देता है?


यहां देखें उत्तर
सुपरसियर

यह स्वचालित नाम बदलने में अक्षम है (जो मैंने पहले ही किया था), डिफ़ॉल्ट नामों के बारे में नहीं, है ना?
js-coder

मुझे लगता है कि आप सही हैं, क्षमा करें!
फ्रेड्रिक पीहल

मैं उपयोग करता हूं set-option -g default-command "reattach-to-user-namespace -l zsh", और अधिकांश समय zshवांछित के रूप में नामित एक खिड़की के साथ समाप्त होता है । अज्ञात कारणों से, कभी-कभी नाम स्विच नहीं होता है, और विंडो कहा जाता है reattach-to-user-namespace। मैंने अभी भी एक पैटर्न पर ध्यान नहीं दिया है कि ऐसा कब / क्यों होता है, लेकिन ऐसा लगता है कि कोई सूक्ष्म बग, या मेरे कॉन्फ़िगरेशन में कुछ हो सकता है।
जिम स्टीवर्ट

नाम में विंडो नंबर डालने का सबसे अच्छा तरीका क्या है?
DanCat

जवाबों:


43

कोई वैश्विक डिफ़ॉल्ट विंडो नाम नहीं है जो सभी नई विंडो पर लागू होता है; वे कमांड के पहले "शब्द" (या डिफ़ॉल्ट शेल अगर कोई कमांड नहीं है) का हिस्सा () का हिस्सा है। आपकी विंडोज़ शायद reattach-to-user-namespaceइसलिए डिफ़ॉल्ट हो रही हैं क्योंकि आप अपने default-commandमूल्य का पहला दिलचस्प सा है ।

यह थोड़ा गोल-गोल होगा, लेकिन आप अपनी डिफ़ॉल्ट कमांड को शेल स्क्रिप्ट में रख सकते हैं और default-commandइसके बजाय अपनी स्क्रिप्ट को इंगित कर सकते हैं । उस कॉन्फ़िगरेशन के साथ डिफ़ॉल्ट विंडो नाम (एक स्पष्ट कमांड के बिना बनाई गई खिड़कियों के लिए) वह होगा जो आपने शेल स्क्रिप्ट का नाम दिया था।

अन्यथा, विंडो को मैन्युअल रूप से नाम / नाम बदलने के कई तरीके हैं:

  • निर्माण समय पर -n:

    new-window -n 'some name'
    

    आप cअपने चुनने के "डिफ़ॉल्ट नाम" को शामिल करने के लिए (विंडो बनाने के लिए उपयोग की जाने वाली डिफ़ॉल्ट कुंजी) को फिर से बाँध सकते हैं :

    bind-key c new-window -n 'default name'
    
  • एक मौजूदा विंडो का नाम बदलें:

    rename-window 'new name'
    

    एक डिफ़ॉल्ट बाइंडिंग (उपसर्ग ,) भी है जो आपको एक नए नाम के लिए संकेत देगा और विंडो का नाम बदलेगा।

  • एक फलक से एक "एस्केप सीक्वेंस" के माध्यम से विंडो को नाम बदलें:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

आपका "मुझे एक नई विंडो के लिए एक नाम के लिए संकेत" इस तरह से किया जा सकता है (विंडो बनाने से पहले या बाद में संकेत देना):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
वाह, यह वास्तव में महाकाव्य जवाब है, बहुत बहुत धन्यवाद! :)
js-coder

7
मुझे डिफ़ॉल्ट शीर्षक सेट करने का एक तरीका मिला: का डिफ़ॉल्ट शीर्षक set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"सेट करता है base। आप इसे अपने उत्तर में जोड़ना चाह सकते हैं। :)
js-coder

आपका समाधान tmux प्रबंधकों को tmuxinator की तरह तोड़ता है। उस स्थिति में, टैब का नाम नहीं बदला जाता है
SystematicFrank

4

tmux पहले कमांड को विंडो नाम के रूप में चुनता है।

मान लें कि आप "i" डिफ़ॉल्ट शीर्षक चाहते हैं, आप इसे इस तरह से ट्रिक कर सकते हैं।

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

इससे बेहतर है

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

क्योंकि यदि आप मैन्युअल रूप से विंडो शीर्षक सेट करने के बाद एक फलक बनाते हैं, तो शीर्षक फिर से "i" पर वापस नाम दिया जाएगा।


1

खिड़की के शीर्षक का उपयोग करने पर क्रिस के जवाब के अलावा new window -n 'somename', आप ''एक खिड़की के नाम के रूप में एक खाली स्ट्रिंग भी प्रदान कर सकते हैं। इस तरह, मैं डिफ़ॉल्ट शॉर्टकट (उपसर्ग + सी) का उपयोग कर सकता हूं और अस्थायी खिड़कियों के लिए एक नाम के साथ आने की आवश्यकता नहीं है, लेकिन अभी भी उन्हें तब नाम बदल सकते हैं जब neccessary:

bind-key c new-window -n ''


1

वास्तव में एक हैक से अधिक जवाब नहीं:

मैंने एक सिमलिंक बनाया है

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

और अब यह pbashडिफ़ॉल्ट शीर्षक के रूप में दिखाता है ।

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