वैश्विक, सर्वर, सत्र और विंडो विकल्पों के बीच अंतर


19

Tmux मैनुअल विभिन्न प्रकार के विकल्पों पर चर्चा करता है, उदाहरण के लिए वैश्विक विकल्प , सर्वर विकल्प और इतने पर। प्रश्न डिफ़ॉल्ट डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल कहाँ है? इस प्रकार के कुछ विन्यास को भी संदर्भित करता है।

इनमें से कुछ प्रकारों को समझना आसान है: खिड़की के विकल्प उन चीजों से निपटते हैं जो केवल एक खिड़की से संबंधित हैं। उदाहरण के लिए "अनुमति-नाम बदलें": खिड़कियों के नाम, सत्र नहीं हैं। अन्य प्रकारों के लिए, हालांकि, अंतर बहुत स्पष्ट नहीं है।

दोनों के बीच क्या अंतर है

  • सर्वर विकल्प ( set-option -s),
  • वैश्विक सत्र विकल्प ( set-option -g)
  • सत्र विकल्प ( set-option),
  • वैश्विक विंडो विकल्प ( set-window-option -g)
  • खिड़की के विकल्प ( set-window-option)?

इसके अलावा, इन प्रकारों के लिए विरासत नियम क्या हैं?

जवाबों:


30

विकल्प के तीन अलग-अलग वर्ग हैं: सर्वर, सत्र और विंडो। ये कक्षाएं अनन्य हैं: प्रत्येक विकल्प केवल कक्षाओं में से एक है। विकल्प वर्गों के बीच कभी कोई विरासत नहीं होती है।

सर्वर विकल्पों का केवल एक स्तर होता है, इसलिए वहां कोई वंशानुक्रम नहीं होता है (हालांकि आपके पास -Lया -Sकमांड फ़्लैग का उपयोग करके कई, स्वतंत्र सर्वर हो सकते हैं )।

सत्र और विंडो विकल्प प्रत्येक दो-स्तरीय पदानुक्रम का उपयोग करते हैं: वैश्विक सत्र (विंडो) विकल्प सत्र (विंडो) विकल्पों के लिए डिफ़ॉल्ट मान प्रदान करते हैं जो परेशान हैं। सत्र और विंडो विकल्प शुरू में सभी परेशान हैं, इसलिए नए सत्र / विंडो स्वचालित रूप से वैश्विक सत्र / विंडो विकल्प मूल्यों का उपयोग करेंगे।

जब कोई सत्र विकल्प सेट किया जाता है ( set-option), तो नया सेट मान उस सत्र के लिए वैश्विक मान को ओवरराइड कर देगा। वैश्विक मूल्य का उपयोग करने के लिए वापस जाने के लिए, विकल्प को अनसेट करें ( set-option -u)। वैश्विक सत्र विकल्प मूल्यों में परिवर्तन उन सभी सत्रों को प्रभावित करेगा जिनमें वह विकल्प वर्तमान में परेशान है। एक ही विचार खिड़की के विकल्प पर लागू होता है (एक खिड़की के विकल्प को सेट करने के अलावा एक व्यक्तिगत सत्र के बजाय एक व्यक्तिगत विंडो के लिए मान को ओवरराइड करता है)।


उदाहरण के लिए, base-indexकिसी विशेष सत्र के सत्र विकल्प के लिए प्रभावी मूल्य खोजने के लिए:

  • सत्र के base-indexविकल्प की जांच करें (यानी आपको tmux -t «target-session» show-options base-index* से क्या मिलता है )।
    1. यदि सत्र का base-indexमूल्य है, तो इसका उपयोग करें।
    2. यदि सत्र का मान सेट नहीं किया गया था, तो वैश्विक मान का उपयोग करें (यानी आपको जो मिलता है tmux show-options -g base-index)।

इसी प्रकार, mode-keysकिसी विशेष विंडो के लिए विंडो विकल्प के लिए प्रभावी मूल्य खोजने के लिए:

  • विंडो के mode-keysविकल्प की जाँच करें (यानी आपको tmux -t «target-window» show-options -w mode-keys** से क्या मिलता है )।
    1. यदि खिड़की का एक mode-keysमूल्य है, तो इसका उपयोग करें।
    2. यदि विंडो का मान सेट नहीं किया गया था, तो वैश्विक मान का उपयोग करें (यानी आपको जो मिलता है tmux show-options -gw mode-keys)।

* Tmux के पुराने संस्करण एक विकल्प नाम तर्क को स्वीकार नहीं करते हैं show-options। उन संस्करणों के साथ आप की तरह कुछ करना होगा ग्रेप इसके लिए: tmux -t target show-options | grep '^base-index '
** यह वही है tmux show-window-options base-index, यदि आप इसे बेहतर पसंद करते हैं। वैश्विक विंडो विकल्पों के लिए संबंधित आदेश है tmux show-window-options -g base-index


यहाँ एक आरेख है:

                 .---------------.
                ( server options  )
                 `---------------'

===========================================================

              .----------------------.
             ( global session options )    base-index 1
              `---------+--+---------'     visual-bell on
                     --/    \--
                  --/          \--
           +-----/-----+    +-----\-----+
           | session X |    | session Y |
           +-----------+    +-----------+
           base-index 0     visual-bell off

  effective values for X:
      base-index 0     (set)
      visual-bell on   (global)

  effective values for Y:
      base-index 1     (global)
      visual-bell off  (set)

===========================================================

              .---------------------.
             ( global window options )    pane-base-index 1
              `---------+++---------'     mode-keys emacs
                    ---/ | \---
                 --/     |     \---
             ---/        |         \---
         ---/            |             \---
+-------/----+    +------+-----+    +------\-----+
| window X.0 |    | window X.1 |    | window Y.0 |
+------------+    +------------+    +------------+
pane-base-index 0                   mode-keys vi
mode-keys vi

  effective values for X.0:
      pane-base-index 0   (set)
      mode-keys vi        (set)

  effective values for X.1:
      pane-base-index 1   (global)
      mode-keys emacs     (global)

  effective values for Y.0:
      pane-base-index 1   (global)
      mode-keys vi        (set)

सर्वर विकल्पों को वैश्विक लोगों से अलग करने के लिए: सर्वर विकल्प सत्र या विंडो विकल्पों पर लागू नहीं होते हैं। और केवल कुछ सर्वर विकल्प हैं जिन्हें सूचीबद्ध किया जा सकता है show -s। हालांकि उपयोग के दृष्टिकोण से, सर्वर विकल्प आवश्यक नहीं हैं IMHO।
बोह्र

1
मेरा मतलब है कि मैं चाहता हूं कि सर्वर विकल्प भी यूएक्स सादगी के लिए निर्दिष्ट किए जा सकते हैं -gऔर हटा सकते हैं -s। मैं सिर्फ एक विकल्प एक सर्वर विकल्प है जानकर कोई लाभ नहीं मिलता है।
बोहर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.