2013-06-02 7 views
7

मैं किसी विशेष फलक के लिए द्वितीयक आकार पैरामीटर निर्दिष्ट करने में सक्षम होना चाहता हूं ताकि यह फलक पर ध्यान केंद्रित करने पर नया आकार निर्दिष्ट कर सके और इसे बाहर निकलने पर लौटा दे। तो उदा।फोकस पर tmux आकार बदलें

(ध्यान दें [] केंद्रित टर्मिनल कर्सर का प्रतिनिधित्व करता है)

________________ 
|$ ls |  | 
|a's |  | 
|dir |  | 
|$  |$ [] | 
|______|_______| 

स्वैप फलक फोकस

_______________ 
|  | | 
|$ ls | | 
|a's dir | | 
|$ [] |$ | 
|________|____| 

और इतने पर। हाल ही में टीएमएक्स संस्करणों में आकार बदलने वाले पैन के बाद विशेष रूप से ठंडा होने वाला यह एक अच्छा काम है जो सामग्री को फिर से बहने के बजाए सामग्री को फिर से बहता है।

उदाहरण में, बाएं फलक की चौड़ाई सेट होने पर स्वचालित रूप से 8 कॉलम होने पर स्विच हो जाती है, और जब यह फोकस खो जाती है तो यह पतली हो जाती है। ध्यान दें कि सामग्री अभी भी कैसे दिखाई दे रही है (यह बाद में हम टीएमयूक्स क्यों पसंद करते हैं) लेकिन हम अभी भी वर्तमान में फोकस फलक को स्वचालित रूप से विस्तारित करके अपने केक भी खा सकते हैं, इसलिए यह हमेशा काम करने के लिए काफी बड़ा होता है!

मैं शायद ऐसा करने के लिए resize-pane कमांड के आवेदन को स्वचालित करने के लिए कुछ विस्तृत बाध्यों के साथ आ सकता हूं, और इसे मेरी इच्छाओं के अनुरूप विस्तृत करने के लिए सही मात्रा में बना सकता हूं। लेकिन मैं उम्मीद कर रहा था कि इसके लिए कुछ प्रकार की अंतर्निहित सुविधा थी।

प्रत्येक फलक के लिए सहायक 4-ट्यूपल पूर्णांक के संशोधन को ट्रैक करने और अनुमति देने के लिए व्यावहारिक होगा। ये उस फलक के फोकस करने के लिए resize-pane -L/D/U/R संचालन की मात्रा निर्दिष्ट करते हैं, और उस फलक के डिफोक्यूज़िंग पर विपरीत दिशा निर्दिष्ट करते हैं।

इस के अन्य, अधिक उचित फॉर्मूलेशन भी हो सकते हैं।

+0

क्या आपको अभी तक ऐसा करने का कोई तरीका मिला है? – golfadas

+0

दुख की बात नहीं है, मैंने और भी तेजी से आकार बदलने के लिए बाध्य किए हैं, लेकिन अब फलक आकार समायोजित करने के लिए 8 बाइंड की तरह है और कोई "वापसी" व्यवहार नहीं है, इसलिए यह अभी भी बहुत सारे मैन्युअल काम है। और मैंने अभी तक नए बांधों का उपयोग करने की आदत नहीं बनाई है। तो नहीं। –

उत्तर

1

एक आंशिक समाधान मिला ... मुझे अपने फलक स्विचिंग को विम के साथ सिंक किया गया है, इसलिए जब भी मैं स्विच पैन स्विच करता हूं, तो मैं भी tmux का आकार बदलता हूं।

यह इष्टतम नहीं है क्योंकि tmux वर्तमान फलक आकार की पुष्टि नहीं कर रहा है और तदनुसार इसका आकार बदल रहा है। वैसे भी, यह बहुत अच्छी तरह से काम करता है क्योंकि आप पैन आकार का आकार बदलने के लिए दो बार सीटीआर-एच या ctrl-k कर सकते हैं।

प्रासंगिक config निम्नलिखित है:

# Sync panes with vi 
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-h) || tmux select-pane -L && tmux resize-pane -R 30" 
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-l) || tmux select-pane -R && tmux resize-pane -L 30" 
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-j) || tmux select-pane -D" 
# Move panes up and down, wont resize 
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-k) || tmux select-pane -U" 
1

क्षमा करें, अटकलों को यह केवल मात्रा में अब तक, लेकिन मैं इसे कुछ के बारे में सोचा है, और मुझे लगता है कि कार्यक्षमता tmux करने के लिए कि समर्थन कर सकते हैं में बनाया गया है है यह लेकिन इसके लिए कुछ/बहुत सारी स्क्रिप्टिंग की आवश्यकता होगी।

इस प्रश्न को मैंने पोस्ट किया है।

http://sourceforge.net/p/tmux/mailman/message/31221459/

मूलतः यह select-layout आदेश की तरह (संभवतः! ??!) लेआउट के लिए एक मनमाना उत्परिवर्तन लागू करने के लिए इस्तेमाल किया जा सकता लग रहा है। अगर यह काम करता है, तो मैंने परीक्षण नहीं किया है।

थॉमस एडम ने क्या हो रहा है इसके बारे में और जानने के लिए लेआउट-कस्टम सी स्रोत में देखने का सुझाव दिया। जहां तक ​​मुझे मिला है। लेकिन यदि वास्तव में लेआउट को प्रोग्रामेटिक रूप से उत्परिवर्तित करना और select-layout पर जाने के लिए काम करने वाले तारों को उत्पन्न करना संभव है, तो यह एक बहुत अच्छा दृष्टिकोण होगा।

अद्यतन: अब मैं इस को कहा है सीधे (सिर्फ एक उपयुक्त स्ट्रिंग पैदा वास्तव में मनमाने ढंग से लेआउट के लिए आकार बदलने को प्राप्त है कि क्या कर सकते हैं), लेकिन अभी तक एक प्रतिक्रिया मिली, श्री एडम खुद से है, लेकिन कारण मैं क्यों कि संदेह यह काम कर सकता है अगर हम चेकसम को पार करने वाली स्ट्रिंग उत्पन्न कर सकते हैं, यह है कि मैं अपने पैन को किसी भी तरह से आकार देने में सक्षम हूं, और स्ट्रिंग रिकॉर्ड करने के बाद उन्हें हटा देता हूं (list-windows कमांड द्वारा उत्पन्न), और उसके बाद रिकॉर्ड किए गए स्ट्रिंग के साथ लेआउट। इसका मतलब यह है कि लेआउट या कुछ भी "सेव" करने के लिए कुछ प्रकार की स्पष्ट कार्रवाई नहीं की जानी चाहिए, ऐसा लगता है कि चेक्सम स्ट्रिंग के साथ कहर बरकरार रखने से कचरा/पैथोलॉजिकल स्ट्रिंग को रोकने में मदद करने के लिए कुछ प्रकार का चालाक तरीका है दुभाषिया जो फलक लेआउट पुनर्गठन करता है।

आपको निश्चित रूप से एक स्ट्रिंग को पारित करने की आवश्यकता है जो इसे काम करने के लिए निर्माण करने के लिए अनिवार्य है। हालांकि, चेकसम की गणना करने के लिए कोड और शेष layout-custom.c में देखने के लिए सादा है। एक दिन मैं शायद एक शेल स्क्रिप्ट (या सिर्फ एक सी प्रोग्राम के साथ वापस आऊंगा, यदि कोड को उठाना संभव है) जो उपयुक्त परिवर्तन लागू करता है। मजेदार होना चाहिए।

हां यह मेरे लिए क्रैंक करना और उस छोटे से छोटे उपहार को चुनना बहुत अच्छा होगा, लेकिन मेरे पास वास्तविक कार्य टीएम दुर्भाग्य से आज रात मेरे लिए इंतज़ार कर रहा है।

+0

यह अभी भी एक शानदार जवाब था, बक्षीस तुम्हारा है और जानकारी के लिए धन्यवाद! – golfadas

संबंधित मुद्दे