Vim + tmux के तहत कर्सर का आकार


14

साइबरविन के तहत tmux के अंदर विम को चलाने पर मेरे पास विभिन्न कर्सर आकार कैसे हो सकते हैं?

Tmux के बिना ये पंक्तियाँ जो मैं चाहता हूँ उसे प्राप्त करने के लिए पर्याप्त होगा:

let &t_SI = "\e[5 q"
let &t_EI = "\e[2 q"

लेकिन किसी भी तरह से मेरा tmux इसे तोड़ देता है - कर्सर में कोई भी आकार नहीं है कि मैं किस मोड में हूँ।

मेरी ऐनक:

  • विंडोज 7 x64
  • साइगविन x86
  • TMUX 1.9a
  • विम ha.४.ors२६ (संकलक के साथ संकलित)
  • टर्मिनल एमुलेटर: माइन्टी 1.1.3
  • सिग्विन टर्मिनल या सीएमडीआर में उपयोग किया जाता है (किसी भी तरह, कर्सर के आकार केवल टीएमयूएक्स के बिना काम करते हैं)
  • echo $TERMमुझे देता है screen-256color(TMUX में और उसके बाहर, क्योंकि मेरे पास export TERM=screen-256colorहै.bashrc
  • .tmux.conf शामिल हैं:
    set -g default-terminal "screen-256color" setw -g xterm-keys on

मैंने पहले ही सफलता के बिना क्या करने की कोशिश की :

  • export TERM=xterm
  • export TERM=vt100
  • "बार पर राइट क्लिक करें> विकल्प> लुक> कर्सर" (यह कर्सर को स्थायी रूप से बदलता है, विम मोड अभी भी इसे नहीं बदलता है)

विम 'कर्सशोप' फीचर के साथ संकलित?
एलेक्स क्रॉल

टर्मिनल सेटिंग्स की जाँच करें। और यह सवाल एक जैसा लगता है superuser.com/questions/634326/…
एलेक्स क्रॉल

आप किस टर्मिनल एमुलेटर का उपयोग कर रहे हैं? क्या आपने कुछ ऐसा करने की कोशिश की है let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1;BlinkingCursorEnabled=1\x7\<Esc>\\"और let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0;BlinkingCursorEnabled=0\x7\<Esc>\\"?
जजबर्गबर्ग

@jjaderberg iTerm का बच निकलने का क्रम? केवल iTerm में कुछ सावधानियों के साथ काम करता है: iTerm Doc > iTerm2 कई गैर-मानक एस्केप कोड का समर्थन करता है। ये tmux या स्क्रीन में ठीक से काम नहीं कर सकते हैं, और अन्य टर्मिनल एमुलेटर पर अज्ञात प्रभाव हो सकते हैं। सावधानी के साथ आगे बढ़ें।
एलेक्स क्रॉल

1
मैंने अपना सॉफ्ट एक बार और चेक किया है और सभी संस्करण आपके साथ समान हैं लेकिन मिनिमल ऑप्शन में $ TERM टक्स के xterm-256colorअंदर है screen-256color। tmux का संस्करण 1.9 है (और आपका 1.9a है)। मैंने tmux के अंदर vim लॉन्च किया है vim -u NULL(-U NULL का अर्थ है कोई कॉन्फिगर नहीं)। किसी भी मोड में कर्सर का आकार ब्लॉक होता है, लेकिन जब मैं ब्लॉक (सामान्य मोड) से (इंसर्ट मोड) में अपेक्षा के अनुसार स्विच t_SIऔर t_EIआकार देता हूं I। आप किसी भी colorchemes और plugins के बिना खाली .vimrc के साथ विम लॉन्च करने की कोशिश कर सकते हैं?
एलेक्स क्रॉल

जवाबों:


11

ऐसा लगता है कि समस्या यह है कि tmux आपके कर्सर-बदलते एस्केप कोड को टर्मिनल एमुलेटर पर नहीं भेजता है। आपको अपने वांछित भागने के कोड को एक विशेष अनुक्रम में लपेटने की आवश्यकता है जो tmux को बताता है कि इसे बाहरी टर्मिनल पर पास करना चाहिए।

अनुक्रम को आपके भागने के क्रम को लपेटने की आवश्यकता है \<Esc>Ptmux;\<Esc> ... \<Esc>\\( स्रोत )। ...अपने भागने अनुक्रम है।

तो, अपने में कुछ ऐसा करने का प्रयास करें .vimrc:

if exists('$TMUX')
    let &t_SI = "\<Esc>Ptmux;\<Esc>\e[5 q\<Esc>\\"
    let &t_EI = "\<Esc>Ptmux;\<Esc>\e[2 q\<Esc>\\"
else
    let &t_SI = "\e[5 q"
    let &t_EI = "\e[2 q"
endif

मैं आपके टर्मिनल एमुलेटर या साइबरविन का उपयोग नहीं करता, इसलिए मैं इस कोड का परीक्षण नहीं कर सका। लेकिन विधि ने मेरे लिए काम किया (मैंने अपने टर्मिनल पर सूट करने वाले अन्य एस्केप कोड को लपेटा)।


यह और भी बेहतर है - मेरे बदले बिना काम करता है .bashrc। धन्यवाद।
Kossak

3

$TERMवातावरण चर का सही मूल्य बहुत महत्वपूर्ण है। सुनिश्चित करें कि यह अलग है screen-256color। इसे xterm-256colorउदाहरण के लिए सेट करें ।

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