मैं जिस दृष्टिकोण का उपयोग करता हूं वह आशीष के जवाब को पीक के साथ जोड़ता है; मेरे पास ऊपरी-बाएं और दाएं तीर है जो एक त्वरित छोटे शेल कॉलआउट से जुड़ा है जो खिड़की को बाईं या दाईं ओर ले जाता है, जब तक कि यह पहली या आखिरी खिड़की नहीं है, सम्मानपूर्वक। मैंने ऐसा इसलिए किया, क्योंकि जब आप अंतिम विंडो पर एक स्वैप +1 जारी करते हैं (या पहली विंडो पर स्वैप -1), तो यह फिर भी स्वैप करेगा, बजाय इसके कि आप उम्मीद कर सकते हैं कि आप फिर से चारों ओर लूपिंग के बजाय:
0:one 1:two 2:three 3:zero*
हो जाता है
0:zero* 1:two 2:three 3:one
के बजाय
0:zero* 1:one 2:two 3:three
इसलिए, मेरे द्वारा उपयोग किए जाने वाले कमांड काम करते हैं जब खिड़की सूची के किनारे तक पहुंच गई है:
bind-key -n M-Left run-shell 'tmux list-windows | head -n 1 | grep -q active || tmux swap-window -t -1'
bind-key -n M-Right run-shell 'tmux list-windows | tail -n 1 | grep -q active || tmux swap-window -t +1'
इसे आसानी से बेस-इंडेक्स और रेनबेरी-विंडोज के साथ जोड़ा जा सकता है ताकि उन खिड़कियों की एक सूची हो जो एक मनमानी संख्या से शुरू होती हैं और कभी कोई अंतराल नहीं होता है।
यदि आप मेरी तरह बेस-इंडेक्स 1 का उपयोग कर रहे हैं और आपको नहीं लगता कि आप कभी भी 999 खिड़कियों से ऊपर जाएंगे, तो आप इसे ठीक से रोल करने के लिए थोड़ी ट्रिक का उपयोग कर सकते हैं, हालांकि कमांड थोड़ी सी फूल जाती हैं:
set -g base-index 1
set -g renumber-windows on
bind-key -n M-Left run-shell 'if tmux list-windows | head -n 1 | grep -q active ; then tmux move-window -t 999 \; move-window -r \; refresh-client -S ; else tmux swap-window -t -1 ; fi'
bind-key -n M-Right run-shell 'if tmux list-windows | tail -n 1 | grep -q active ; then tmux move-window -t 0 \; move-window -r \; refresh-client -S ; else tmux swap-window -t +1 ; fi'
यह अस्थायी रूप से अंतिम विंडो को अप्रयुक्त इंडेक्स -० में ले जाकर फिर से 1 से शुरू करने के लिए मूव-विंडो -r को कॉल करके काम करता है । यह पहली खिड़की को अंत तक ले जाने पर इसी तरह काम करता है; एक बड़ी संख्या का उपयोग करके, जिसका आप कभी उपयोग नहीं करेंगे, यह सुनिश्चित करता है कि जब मूव-विंडो-आर फिर से आग लगे तो सब कुछ उसी तरह गिना जाएगा जैसे आप उम्मीद करते हैं। यदि आप रिफ्रेश-क्लाइंट-एस के बारे में सोच रहे हैं , तो यह आवश्यक है क्योंकि कभी-कभी, जबकि चाल-खिड़की से पुन: व्यवस्थित करना ठीक से काम करेगा, स्थिति पट्टी तब तक अपडेट नहीं होगी जब तक कि आगे परिवर्तन नहीं किए जाते हैं। सिर्फ स्टेटस बार (-एस) का रिफ्रेशमेंट करने से आप इससे बच जाते हैं।
इस दृष्टिकोण के साथ मैं केवल एक ही मुद्दा पा सकता हूं कि स्वैप-विंडो आपके द्वारा स्वैप की गई अंतिम-उपयोग की गई विंडो को स्पष्ट रूप से बदल देगी। इस प्रकार, यदि आप विंडो # 1 पर हैं, तो विंडो चार पर स्विच करें और इसे एक पर वापस ले जाएं, आप पाएंगे कि आपकी अंतिम-उपयोग की गई विंडो # 1 के बजाय नया # 4 (पूर्व में # 3) है। इस के आसपास एक रास्ता नहीं लगता है।
C-b
,.
आपको एक विंडो को फिर से चालू करने देता है।