टोड फ्रीड सही है, यह करने के लिए "सही" तरीका उपयोग कर रहा है \;। की तरह। लेकिन एक रोड़ा है।
आप देखते हैं, आप एक साथ tmux कमांड के एक क्रम से जुड़ते हैं, tmux को संयुग्मन देते हैं ;। इस प्रकार, tmux द्वारा सॉर्ट की गई फ़ाइल में, आप कह सकते हैं
new-session "monitor1" ; split-window -v "monitor2"
यदि, किसी कारण से, आप चाहते थे कि सभी एक पंक्ति में हों। अब, आप करने के लिए कि एक पंक्ति का यौगिक बयान दे सकते हैं tmuxएक खोल भी से आदेश लेकिन; इतना फरार हो जाना चाहिए कि के लिए एक और तर्क के रूप में खोल व्याख्या यह tmux। इस प्रकार शेल से ऊपर के बराबर है
$ tmux new-session "monitor1" \; split-window -v "monitor2"
इसी प्रकार, tmux bind-keyकमांड तर्कों की एक श्रृंखला लेती है , जो tmux कमांड होती हैं और जब कुंजी को दबाया जाता है तो वे चलती हैं। यदि आप C-qtmux द्वारा सॉर्ट की गई फ़ाइल के अंदर से उपर्युक्त अनुक्रम को बांधना चाहते हैं, तो आप कहेंगे
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
यहां हम ; tmux से बच गए हैं , ताकि tmux इसे bind-keyकमांड के अंत के रूप में व्याख्या नहीं करता है , लेकिन एक अन्य तर्क के रूप में bind-keyयह एक C-qप्रमुख कमांड को कुंजी के बाध्य मान के रूप में बताता है ।
तो क्या होता है जब हम tmux को शेल से करना चाहते हैं? भागने का एक पूरा।
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
सबसे पहले, हम से बचने के लिए किया है \ और; से प्रत्येक खोल , खोल दो अक्षर पारित करने के लिए पैदा कर रहा \;करने के लिए एक तर्क के रूप tmux। यह तब ;tmux से बच जाता है , जिससे यह संपूर्ण यौगिक विवरण के बंधन के रूप में निर्दिष्ट होता है C-q।
अब, यदि आप इस तरह के एक जटिल tmux सेटअप का उपयोग बार-बार करते हैं, तो मैं सुझाव दूंगा कि आप इसमें रखने के लिए tmux फ़ाइल बनाएँ:
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
और तब:
$ tmux source split-windows.tmux # (or even make an alias for this)
इस तरह से इसे बनाए रखना बहुत आसान होगा।
\;:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"