कैसे ठीक से tmux के साथ काम करने के लिए विम पाने के लिए?


19

मैं यह पता लगाने की कोशिश कर रहा हूं कि कैसे प्राप्त करें vimऔर tmuxएक साथ खेलें।

मेरी समस्या यह है: जब मैं उपयोग करता xterm-256colorहूं तो मुझे vimअच्छी तरह से काम करना पड़ता है, लेकिन पृष्ठभूमि ठीक से प्रस्तुत नहीं करती है।

मैंने उपयोग करके इसे ठीक किया screen-256color। यह अच्छा लग रहा है, लेकिन Ctrl + arrow keysवे (वे सम्मिलित मोड में जाते हैं और 4 लाइनें हटाते हैं) को तोड़ते हैं। मैं टैब को स्विच करने के बजाय इन मैपिंग का उपयोग करना चाहता हूं vim

मैं इससे कैसे काम लूं?

जवाबों:


8

भागो catके भीतर tmuxऔर प्रेस प्रश्न में कुंजी मुक्ति कोड वे उत्पन्न पता लगाने के लिए। मेरे लिए यह देता है ^[[Dऔर ^[[C। फिर सीधे उन एस्केप कोड को मैप करें।

nnoremap ^[[D gT
nnoremap ^[[C gt

जहां ^[एक बच चरित्र है, जिसे आप <CTRL-v><ESC>vim में दबाकर सम्मिलित कर सकते हैं ।


मेरे व्यवहार में बदलाव नहीं आया।
आउटसोर्समार्टिन

जब आप tmux के भीतर बिल्ली शुरू करते हैं और चाबियाँ दबाते हैं तो क्या छपा होता है?
मिका फिशर

^ [[1; 5 सी और ^ [1; 5 डी। अच्छा विचार है, मुझे नहीं पता कि उन्हें कैसे प्राप्त करना है। बस कोशिश की। यह काम करता हैं! धन्यवाद।
बहिर्मुखी

महान। मैंने सही भागने के कोड प्राप्त करने के लिए विधि को शामिल करने के लिए अपने एंकर को संपादित किया।
मिका फिशर

22

कॉन्फ़िगरेशन के कई स्तर हैं जिन्हें सर्वश्रेष्ठ कार्यक्षमता के लिए सही तरीके से सेट करने की आवश्यकता है।

  1. दृश्यों को पहचानने के लिए tmux को कॉन्फ़िगर करें । Tmux लॉन्च करने से पहले , एक TERM मान सेट करें जो आपके टर्मिनल एमुलेटर (जैसे xterm-256color) के लिए उपयुक्त है । Terminfo डेटाबेस प्रविष्टि अवधि वातावरण चर द्वारा की पहचान बताता है tmux तीर कुंजी संशोधित के लिए दृश्यों को पहचान करने के लिए कैसे (उपयोगकर्ता परिभाषित कार्यक्षमताओं { kUP, kDN, kRIT, kLFT} {, 3.. 7})।
  2. दृश्यों को उत्पन्न करने के लिए tmux को कॉन्फ़िगर करें । xterm-keysसत्र विकल्प को सेट करें onताकि tmux अपना स्वयं का xterm- शैली अनुक्रम उत्पन्न करे जब उसे एक अनुक्रम प्राप्त होता है जो उसके TERM की पहचान करता है। अपने में ~/.tmux.conf:

    set-option -g xterm-keys on
    
  3. Tmux के अंदर चलने वाले प्रोग्राम को कॉन्फ़िगर करें ताकि इसके अधिकांश दृश्यों का उपयोग किया जा सके। सुनिश्चित करें कि आप tmux (जैसे ) के screenअंदर एक- आधारित शब्द का उपयोग कर रहे हैं । यह tmux के अंदर चल रहे कार्यक्रमों को बताता है कि tmux के टर्मिनल (पुनः) के इम्यूलेशन को कैसे नियंत्रित किया जाए और tmux से उन्हें क्या प्रतिक्रियाएँ मिलनी चाहिए ।screen-256color
  4. दुर्भाग्य से, screen-बेड टर्मोफ़ डेटाबेस प्रविष्टियाँ अक्सर संशोधित तीर कुंजियों के लिए किसी भी अनुक्रम को परिभाषित नहीं करती हैं (अर्थात उनके पास kUPएट वगैरह नहीं हो सकती ), इसलिए tmux के अंदर चलने वाले प्रोग्रामों को ऐसे दृश्यों की उम्मीद नहीं हो सकती है। आपको किसी भी प्रोग्राम को मैन्युअल रूप से कॉन्फ़िगर करना होगा जिसे आप इन कुंजियों को पहचानना चाहते हैं। में विम , आप अपने में इस डाल सकते हैं ~/.vimrc:

    if &term =~ '^screen'
        " tmux will send xterm-style keys when xterm-keys is on
        execute "set <xUp>=\e[1;*A"
        execute "set <xDown>=\e[1;*B"
        execute "set <xRight>=\e[1;*C"
        execute "set <xLeft>=\e[1;*D"
    endif
    

    आप बिना वेरिएंट उपयोग कर सकते हैं x(यानी <Up>के बजाय <xUp>आप पाते हैं कि का उपयोग करते हुए, वगैरह) x-variant काम करना बंद कर करने के लिए अपने सामान्य तीर कुंजी का कारण बनता है।

    कुंजी को इस तरह परिभाषित करने का लाभ यह है कि आपको प्रत्येक संयोजक संयोजन को अलग से मैप करने की आवश्यकता नहीं है (Shift, Control, Contol + Shift, Meta, Meta + Shift, Meta + Control, Meta + Control + Shift); *सभी संबंधित दृश्यों (देखें संभालने के लिए विशेष व्याख्या हो जाता है :help xterm-modifier-keys)।

  5. तब आप उनकी हार्ड-कोडित अनुक्रमों के बजाय कुंजियों को मैप कर सकते हैं:

    nnoremap <C-Right> gt
    nnoremap <C-Left> gT
    

1
अरे, यह पूरी तरह से काम किया!
पाब्लो ओलमोस डे एगुइलेरा सी।

2

जैसा कि यहां बताया गया है , टर्मिनल विकल्प ( वीम में चलाएं और फिर टर्मिनल के डिस्प्ले को रिफ्रेश करने के लिए + दबाकर ) बैकग्राउंड कलर इरेज (बीसीई) को अक्षम करें ताकि कलर स्कीम ठीक से काम करें जब विम का उपयोग tmux और GNU स्क्रीन के अंदर किया जाता है।t_ut:set t_ut=ControlL

इस तरह, आप उचित TERMमान का xterm-256colorपता लगाने के लिए अपना मूल्य रख सकते हैं, जबकि उचित VIM रंग योजना भी प्रदान कर रहे हैं! :-)


1

क्या set t_Co=256आपके ~ / .vimrc में सेटिंग करना बिल्कुल मदद करता है? यह सिर्फ एक रंग सेटिंग है, लेकिन कुछ समस्याओं को स्पष्ट करने में मदद कर सकता है।

आप ctrl+Arrowअपने ~ / .vimrc में कुंजियों को फिर से मैप कर सकते हैं ...

संपादित करें: क्या आपने ctrl+ArrowGNU स्क्रीन सत्र में प्रयास किया था ? मुझे लगता है कि शायद यह आपकी समस्या है।


यह स्क्रीन पर xterm-256color
outsmartin

सेट t_Co = 256 aswell से किया जाता है
outsmartin

क्या इसमें से किसी ने मदद की?
सरदाथ्रियन - मोनिका

दुर्भाग्यवश नहीं। क्या आप वास्तव में remapign ctrl + तीर के साथ मतलब है? मैं उन्हें पहले से ही रिम में टैब स्विच करने के लिए रीमैप किया गया उपयोग करता हूं।
बहिर्मुखी

इसका मैप इस तरह है: नक्शा <C-Right> gt
outsmartin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.