तीर कुंजी अनायास विम में काम करना बंद कर देती है


25

मैंने हाल ही में ओएस एक्स 10.6 (मुझे लगता है) से 10.9 में अपग्रेड किया है। तब से ऐसा लगता है, संपादन करते समय vim, तीर कुंजी "अनायास" काम करना बंद कर देगी।

एक बिंदु पर, हताशा में मैंने तीर कुंजियों में से एक को "मैश किया" और आखिरकार दिखाया गया "ई 388 एक परिभाषा" त्रुटि नहीं पा सका। अन्य सभी समय मैंने इसे अनुभव किया है, तीर, थोड़ी देर के लिए काम करते हुए, अचानक मुझ पर झपटना शुरू कर देता है!

छोड़ने और फिर से खोलने से समस्या अस्थायी रूप से हल हो जाती है । लेकिन, मैं इसे रोकना चाहूंगा !

किसी को पता है कि यह क्या हो सकता है? और इसे कैसे ठीक करें?


ऐसा लगता vimrcहै कि अद्यतन के दौरान मेरा डिफ़ॉल्ट संशोधित किया गया था। यदि मेरी मेमोरी सही है, तो यह पहले एक बहुत बड़ी फ़ाइल थी। अब, इसमें यह शामिल है:

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

मुझे नहीं पता कि ये विकल्प अभी तक क्या कर रहे हैं। मैं इस पर गौर करूंगा - लेकिन, उम्मीद है कि यहाँ कोई मुझे Google और पढ़ने की तुलना में अधिक तेज़ी से जानता है ...


मुझे यह भी एहसास हुआ कि यहाँ Apple-केंद्रित मंच है जो इस प्रश्न के लिए बेहतर हो सकता है। इसलिए, अगर यह ओएस एक्स की तुलना में अधिक संभावना है vim, तो शायद एक मॉड मेरे लिए इसे स्थानांतरित कर सकता है।
svidgen

2
मुझे कॉलेज में "प्राइम" मेनफ्रेम पर काम करने की याद दिलाता है। प्रोफेसर ने सिखाया कि आपको कभी भी तीर कुंजी का उपयोग नहीं करना चाहिए vi। हमेशा hjkl का उपयोग करें। यही कारण है कि "एरो" कीज़ का उपयोग प्राचीन हार्डवेयर पर किया जाता है।
रेड क्रिकेट

ठीक है ... लेकिन, तीर कुंजी को काम करना चाहिए। भले ही आपके प्रोफेसर को लगता हो कि मुझे उनका उपयोग करना चाहिए। और मैं उन्हें कई बार सुविधाजनक लगता हूं। इसलिए, समाधान के लिए आगे देख रहे हैं।
svidgen

1
क्या होता है जब आप एक कुंजी शाब्दिक बफर में सम्मिलित करते हैं? इन्सर्ट मोड में जाएं, और Ctrl + v दबाएं, फिर एरो की। मेरे मैक पर विम अप एरो की को दिखाता है ^[OA, नीचे की तरह ^[OB, दाएं के रूप में ^[OC, और बाएं के रूप में ^[OD। समस्या के पहले और बाद में जाँच करें
नाथन वालेस

@NathanWallace यकीन नहीं है कि कैसे मैं आपके सवाल को नजरअंदाज कर दिया। मैं कोशिश करूँगा कि जब मैं अपने मैक पर हूँ।
svidgen

जवाबों:


24

जेम्स हॉजकिन्सन के ब्लॉग में पाया गया , निम्नलिखित कमांड मेरे लिए काम करता है। ध्यान दें कि यह vim स्क्रीन को रिफ्रेश करेगा।

:!reset

निश्चित नहीं है कि मैंने इस उत्तर को कैसे अनदेखा किया, लेकिन यह बहुत ही आशाजनक है!
svidgen

वास्तव में ... लेख में वर्णित Ctrl + R को हिट करने से नथन के ऊपर मेरी प्रतिक्रिया में उल्लेखित गलत तीर-कुंजी मैपिंग के साथ पूर्ण सुसंगतता में समस्या को पुन: पेश करता है। और रीसेट कमांड इसे उस स्थिति में हल करता है। और .. मैं समस्या को किसी अन्य तरीके से पुन: उत्पन्न नहीं कर सकता, इसलिए यह निश्चित रूप से सबसे उपयोगी उत्तर है!
svidgen

11

मैं कुछ समय के लिए इस समस्या में चला गया हूँ। मैं एक अन्य कंप्यूटर पर GNU स्क्रीन चला रहा था जिसे मैं SSH के माध्यम से लॉग इन किया गया था। समस्या को ठीक करने के लिए, मैंने अपनी स्क्रीन (ओं) ( Ctrl- a d) को अलग कर दिया, मशीन से लॉग इन किया, वापस लॉग इन किया, और रीटैचड का उपयोग करके screen -x। यह मशीन से लॉग-इन किए बिना काम कर सकता है, बस स्क्रीन को हटाकर और रीटचिंग करके। मुझे याद नहीं है।


मेरे स्क्रीन सत्र को बंद करना और इसे फिर से शुरू करना मेरे लिए तय हो गया।
Eno

1
मेरे लिए यही समस्या थी। किसी तरह screenदुर्गंध की स्थिति में (एक ssh कनेक्शन पर) मिला। उस टर्मिनल को बंद करना, फिर से ssh, और screen -rdचाल चली। धन्यवाद!
पियरे डी

@PierreD सही, मैं इस मुद्दे में पहले से ही कुछ समय के लिए चला गया हूँ - एक screenसत्र में भी , Detach & Reattach ने समस्या हल की, धन्यवाद!
stdcerr

6

पथ में /usr/share/vim/मुझे .vimrcफ़ाइल मिली ... वहाँ मैंने लाइन जोड़ी

set term=ansi 

इसने मेरे लिए काम किया। अब विम एडिटर में एरो कीज़ ठीक से काम कर रही हैं।


2
यह मेरे लिए भी तय है, क्योंकि नवीनतम विंडोज 10 डब्ल्यूएसएल / उबंटू अपडेट ने इसे तोड़ दिया।
ग्रे फॉक्स

3

यह आपके मुद्दे की तरह लगता है। लेख का शीर्षक है: विम में कर्सर कुंजी: यू मेकिंग मी क्रेजी!

अंश

विम कई स्थितियों में उपयोगी है, विशेष रूप से त्वरित संपादन के लिए (विशेष रूप से रूट के रूप में), और दूरस्थ सर्वर पर फ़ाइलों को संपादित करना। एक मैक बुक प्रो के साथ मेरे नौ महीनों के दौरान मेरे द्वारा की गई एक झुंझलाहट विम लाइनों में कर्सर कुंजी है जो लाइनों को बदलने के बजाय सम्मिलित या कमांड मोड में घंटी बज रही है। MacPorts के माध्यम से संस्करण 7 में अपग्रेड करने से समान परिणाम प्राप्त हुए। Rxvt से मेरे टर्मिनल को VT220 में बदलने के बाद कर्सर कीज़ ने काम किया! नकारात्मक पक्ष वाक्य रचना हाइलाइटिंग ने काम करना बंद कर दिया था।

सौभाग्य से, मेरे Google खोज मापदंडों में VT220 को जोड़ने से Vt100-कर्सर-कुंजियों के संदर्भ Vim प्रलेखन में बदल गए। समस्या को ठीक करने के लिए अपने .vimrc फ़ाइल में निम्न कोड जोड़ें:

    :set notimeout          " don't timeout on mappings
    :set ttimeout           " do timeout on terminal key codes
    :set timeoutlen=100     " timeout after 100 msec

एक ही लेख में अपने स्थापना के एक और सुझाव है $TERMकरने के लिए linuxपर OSX बजाय।

अंश

एक बेहतर उपाय यह है कि TERM के लिए डिफ़ॉल्ट मान को लिनक्स या dtterm में बदल दिया जाए क्योंकि TERM मान को दूरस्थ सर्वर पर उठाया जाएगा। इस दिन और उम्र में, मैं शर्त लगाता हूं कि अधिकांश सर्वर इन दोनों प्रकार के टर्मिनल का समर्थन करेंगे।


हम्म ... मैं अब और भी उलझन में हूँ। मुझे लगा कि मेरे पास वैश्विक / डिफ़ॉल्ट .vimrcफाइलें हैं। क्या OS X अपडेट के दौरान इन्हें स्थानांतरित या हटा दिया जाएगा?
svidgen

@ एसवीडजेन - नहीं, मुझे नहीं लगता कि यह बदल गया होगा, लेकिन यह मुद्दा आपके जैसा ही है, और यह तय करने के लिए पर्याप्त है, और यह तय करना आसान है, इसलिए मैंने सोचा कि मैं इसे आपके साथ साझा करूंगा। संयोग से $TERMआप पर परिवर्तन हो सकता है।
slm

Whelp, यह निश्चित रूप से यहाँ सबसे अधिक प्रासंगिक उत्तर है। उसके लिए +1। सुनिश्चित नहीं हैं कि यह इसे अभी तक ठीक करता है, दुर्भाग्य से, क्योंकि मैं लगातार समस्या को पुन: पेश नहीं कर सकता।
svidgen

इस सुधार को लागू करने के बाद, समस्या फिर से हुई है। अभी भी एक प्रासंगिक उत्तर, +1 छोड़ रहा है। लेकिन, यदि आप एक अतिरिक्त जवाब देने में रुचि रखते हैं, तो कृपया मेरी टिप्पणी ऊपर देखें।
svidgen

0

अपडेट पर बधाई। मैंने सप्ताहांत में अपना खुद का अपडेट किया और अपने कुछ अजीब कीबोर्ड मुद्दों से निपट रहा हूं।

यहाँ कुछ चीज़ें हैं जिनकी मुझे आवश्यकता है:

  • पुराने Logitech गेमिंग सॉफ्टवेयर निकालें और अपग्रेड करें। ऐसा करने से पहले मुझे अपने वर्ग और घुंघराले ब्रेसिज़ का उपयोग करने में समस्या हो रही थी। विशेष कुंजी अक्सर VIM संदर्भ में esc- [क्रम भेजती है ताकि यह प्रासंगिक हो सके।
  • सिस्टम प्रीफ़ में जाएं: सुरक्षा और गोपनीयता: गोपनीयता: पहुंच और एप्लिकेशन के कुछ जोड़े (synergy_server और Logitech गेमिंग सिस्टम) को सक्षम करें। इस परिवर्तन से पहले मैं अपने अन्य कंप्यूटरों को तालमेल के साथ नियंत्रित करने या अपने G11 के साथ मैक्रोज़ का उपयोग करने में असमर्थ था। मुझे संदेह है कि यह आपके लिए एक सीधा संबंध है, लेकिन एक्सेसिबिलिटी विकल्प नए हैं और आपके किसी अन्य ऐप पर लागू हो सकते हैं।

0

यदि आप .sqlफ़ाइलों में काम कर रहे हैं vim(आप उल्लेख नहीं करते हैं) तो यह आपकी मदद कर सकता है। मैंने दूसरे दिन ही इससे निपटा।

फाइल में ~/.vimrc

let g:omni_sql_no_default_maps = 1

इस विशेष मुद्दे पर यहां चर्चा की गई है

यदि आप .sqlफ़ाइलों के साथ इस समस्या का सामना नहीं कर रहे हैं , vimतो मैं माफी माँगता हूँ, मेरा एकमात्र विचार vimसमस्या होने पर मैपिंग को सत्यापित करना होगा ।

:map Ctrl V → जब आप अपने तीर का उपयोग करने की क्षमता खो देते हैं, तो उस कमांड को करें और देखें कि क्या मैपिंग गायब हो गई है। अगर यह किया, तो यह आपको खुदाई शुरू करने के लिए जगह देता है।


0

मुझे SSH सत्र में यह समस्या हुई थी और इसे फिर से लॉग आउट करके हल किया:

exit
ssh ...

वजन करने के लिए धन्यवाद। चयनित उत्तर ने मेरे लिए लगातार काम किया है। या तुमने कोशिश की?
svidgen

हां, स्वीकृत समाधान उबंटू 18 पर काम नहीं किया। मैंने भी अनइंस्टॉल और रीइंस्टॉल्ड विम (एक ही ssh सत्र में) की स्थापना की और कोई पासा नहीं। केवल लॉग आउट करने के बाद फिर से वापस तीर की कार्यक्षमता को बहाल किया।
द्विवार्षिक

0

मेरे पास यह मुद्दा था जब मैंने विंडोज में "सिस्टम एनवायरमेंट वैरिएबल" का उपयोग किया था, जिस पर सेटिंग TERMकरना xterm-256colorvimजब मैं चर को फिर से हटाता हूं तो समस्या दूर हो गई (और मेरी सामान्य स्थिति में लौट आई)।

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