Tmux के अंदर vim विभाजन का आकार नहीं बदल सकता


47

बाहर सब कुछ ठीक काम कर रहा है tmux। लेकिन tmuxमैं माउस के साथ विम विभाजन का आकार परिवर्तन नहीं कर सकता। मैं set mouse=aअपने .vimrc में है। क्या इसका कोई समाधान है?

.tmux.conf:

$ cat ~/.tmux.conf
set-option -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on

AFAIK यह एक ज्ञात / अनसुलझे मुद्दा है। बेशक, यदि आप अपने माउस को अपने कीबोर्ड के पक्ष में छोड़ देते हैं, तो यह बहुत अधिक गैर-मुद्दा बन जाता है।
रोमेनिल

11
क्या आपने विमttymouse=xterm2 में भी सेटिंग करने की कोशिश की है ? इससे मुझे tmux के अंदर Vim विभाजन को खींचने में मदद मिलती है (ऐसा लगता है कि जब इसे चलाया जा सकता है , जो शायद tmux के बाहर है )। xterm2TERM=xterm
क्रिस जॉन्सन

@ChrisJohnsen यह काम करता है !! कृपया इस टिप्पणी को उत्तर के रूप में पोस्ट करें और मैं इसे स्वीकार करूंगा :)
होम्स

@romainl नमस्कार! डिफ़ॉल्ट विम कुंजी बाइंडिंग के साथ विंडो का आकार बदलना काफी बोझिल IMHO है। xD
trusktr

यह एक पोटीन मुद्दा नहीं है
jasonszhao

जवाबों:


69

ऐसा प्रतीत होता है कि विभाजन रेखा को आकार देने के लिए स्थिति रेखा को खींचना संभव नहीं है जब विम विकल्प होता ttymouseहै xterm; यह तब काम करता है जब मूल्य है xterm2। बाद का मूल्य विम को विस्तारित माउस रिपोर्टिंग मोड के लिए पूछने के लिए कॉन्फ़िगर करता है जो (अन्य चीजों के बीच) बेहतर खींचने वाला समर्थन प्रदान करता है। यह विस्तारित मोड केवल xterm के नए संस्करणों के साथ काम करता है (और tmux सहित अन्य संगत टर्मिनल एमुलेटर ), इसलिए यह डिफ़ॉल्ट मान नहीं है।

आप .vimrcविकल्प सेट करने के लिए अपने निम्नलिखित में से कुछ का उपयोग कर सकते हैं :

set mouse+=a
if &term =~ '^screen'
    " tmux knows the extended mouse mode
    set ttymouse=xterm2
endif

(हालांकि, मुझे यकीन नहीं है कि यह वास्तविक स्क्रीन इंस्टेंस को कैसे प्रभावित करेगा , जो कि शुरू होने वाले TERM का भी उपयोग करता है screen।)

जब आप tmux से बाहर होते हैं , तो TERM वातावरण चर शायद एक xterm-ish मान है, और Vim नियंत्रण क्रम का उपयोग करके xterm संस्करण के लिए जांच करेगा t_RV


3
आप यह नहीं जानते कि यह स्क्रीन को कैसे प्रभावित करेगा (जैसा कि tmux के विपरीत )। जवाब है: स्क्रीन में एक ही समस्या है, और यह सटीक फिक्स वहां भी काम करता है।
मॉस कोलम

1
हालत मेरे Tmux में सच नहीं है, लेकिन बस setचर काम करता है।
jasonszhao

1
आप एक टर्मिनल जो 223 से अधिक स्तंभ में काम करते हैं, तो आप सेट करने की आवश्यकता होगी ttymouseकरने के लिए sgrके रूप में xterm2है कि परे जाना नहीं है। आप देख सकते हैं अपने vim का समर्थन करता है sgrके साथ has("mouse_sgr")। इसे हमेशा सेट sgrकरने के लिए सुरक्षित होना चाहिए xterm2क्योंकि यह पीछे की ओर संगत है। देखें:help ttymouse
सूडो बैश

14

मेरे मामले में इसने दोनों मामलों को हल किया: माउस विभाजन आकार और विस्तृत स्क्रीन के लिए माउस स्थिति समस्या।

तय है:

if has("mouse_sgr")
    set ttymouse=sgr
else
    set ttymouse=xterm2
end

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