क्या सामान्य मोड में वापस आने पर स्वचालित रूप से कैप्सलॉक बंद कर सकते हैं?


13

लगभग हर बार जब मैं कैप्स में कुछ लिखता हूं, तो सामान्य मोड में लौटने पर कैप्सलॉक बंद करना भूल जाता हूं। मैं फिर कर्सर को स्थानांतरित करने का प्रयास करता हूं और अंत में लाइनों का एक गुच्छा और बहुत सारी अन्य चीजें शामिल करता हूं जो मुझे होने की उम्मीद नहीं है।

जब मैं सामान्य मोड में प्रवेश करने के लिए भागने को दबाता हूं तो क्या कैप्स को बंद करने के लिए विम को कॉन्फ़िगर करना संभव है?

यदि ऐसे समाधान हैं जो ओएस-विशिष्ट हैं, तो मैं लिनक्स पर लागू होने वालों में दिलचस्पी रखता हूं।


मेरा "इसका समाधान" कैप्स लॉक को "नो एक्शन" (मैकोस) को रीमैप करने के लिए था, क्योंकि मैं गलती के अलावा इसका उपयोग नहीं करता हूं
लोकलहोस्टेडदेव

जवाबों:


8

इस सवाल के जवाब से संकेत मिलता है कि इसकी संभावना नहीं है - विम के पास उस कॉल को करने के लिए ओएस तक पहुंच नहीं है।

हालाँकि, आप अपने व्यवहार को बदलने की कोशिश कर सकते हैं ताकि कैप्स लॉक की आवश्यकता न हो। यह मैप करने के लिए एक लोकप्रिय कुंजी है Ctrl, Escया Meta

विम के पास gUचयन या गति को बढ़ाने के लिए ऑपरेटर है, इसलिए शायद आप सामान्य रूप से टाइप कर सकते हैं और उसके बाद उपयोग कर सकते हैं। इसके अलावा प्रासंगिक: guलोअरकेस और ~टॉगल करने के लिए।

स्वतः पूर्ण करने के भी तरीके हैं, जो आपकी आवश्यकता को कम कर सकते हैं VERY_LONG_MACRO_NAMES


4

मैंने ctrl होने के लिए अपने कैप्सलॉक का रीमैप किया है और मैं अब शायद ही कभी कैप्सलॉक का उपयोग करता हूं। हालांकि, विम के लिए अगर मुझे कभी ज़रूरत होती है, तो आपके लिए एक सॉफ्टवेयर अस्थायी कैप्सलॉक के रूप में tpope / vim-capslock है । यदि आप इसका उपयोग करते हैं, तो घटना के लिए एक ऑटोकैम सेटअप करना InsertLeaveऔर कैप्सलॉक को अक्षम करना काफी आसान होना चाहिए ।


3

मुझे स्वचालित रूप से सामान्य मोड में कैप्स लॉक बंद करने का एक तरीका मिला (हालांकि यह केवल लिनक्स में काम करता है)।

प्लगइन्स के साथ जो समाधान किए गए थे वे इस बात पर ध्यान नहीं देते हैं कि आप सामान्य मोड में प्रवेश कर सकते हैं और फिर एक तरीका है (जो कि सामान्य से डालें), उदाहरण के लिए कमांड मोड से।

वास्तव में कोई ऑटोकॉमैंड घटना नहीं है जो सामान्य मोड में प्रवेश करने पर सक्रिय हो जाती है, इसलिए मैं जिस इवेंट का उपयोग करता था वह CursorHoldईवेंट था , जो तब सक्रिय होता है जब आप सामान्य मोड में टाइप नहीं कर रहे होते हैं।

au CursorHold * call TurnOffCaps()
set updatetime=10

आप अपडेट समय को बहुत कम संख्या में सेट करते हैं, इसलिए यह हमेशा सक्रिय होगा, इससे पहले कि आपके पास कुछ भी टाइप करने का मौका हो।

function TurnOffCaps()  
    let capsState = matchstr(system('xset -q'), '00: Caps Lock:\s\+\zs\(on\|off\)\ze')
    if capsState == 'on'
        silent! execute ':!xdotool key Caps_Lock'
    endif
endfunction

मुझे लगता है कि यह प्रश्न का एकमात्र वास्तविक उत्तर है। विम को किसी तरह कैप्सलॉक को चालू करने के लिए ओएस पर कॉल करने की आवश्यकता है। बेशक यह कैसे किया जाता है यह ओएस पर निर्भर करेगा।
ऑक्टेविओर

2

एक अन्य विकल्प के लिए अपने CapsLockको फिर से तैयार करना है Esc। यह एक मानचित्रण है जिसका उपयोग मैं अभी कुछ वर्षों से कर रहा हूं: CapsLockएक होम रो पर है, इसलिए यदि आप टाइप करते हैं तो इसका उपयोग करना वास्तव में आसान है। यह उचित Vim उपयोग को भी बढ़ावा देता है, क्योंकि इन्सर्ट मोड से बाहर निकलना बहुत आसान है (की तुलना में करीब है Esc)।

इसे फिर से बनाना आसान है: लिनक्स इस मूल का समर्थन करता है, इसे पूरा करने के लिए मैक ओएस एक्स और विंडोज के लिए छोटे ऐप हैं। और कुछ महंगे कीबोर्ड भी एक ऐसी सुविधा के साथ आते हैं जो रीमैपिंग कीज़ की अनुमति देता है।


2

एवियन वाई जवाब के अलावा, वास्तव में एक ऑटोकॉमैंड है जो डालने के मोड को सक्रिय करता है:

au InsertLeave * call TurnOffCaps()

वह भी ठीक वैसा ही था, जिसकी मुझे तलाश थी ...


1

अपने Apple मशीन पर, मैंने वास्तव में Karabiner का उपयोग करके इस सुविधा को लागू किया, जो काफी अच्छी तरह से काम करता था। दुर्भाग्य से 10.12 ने काराबिनर को तोड़ दिया, और मैंने इसे लागू करने की कोशिश नहीं की।

मेरे पास भागने की कुंजी या एंटर कुंजी अक्षम कैप्स लॉक का उपयोग करने के लिए ऐसा था, अगर यह पहले सक्षम था।

इसलिए जब आप 10.11 या उससे नीचे के macOS का उपयोग कर रहे हैं, तो आप निश्चित रूप से ऐसा कर सकते हैं (हालांकि सेटिंग्स के लिए मुझसे न पूछें, मेरे पास अब नहीं है)।

नहीं तो मैं सुझाव के साथ जाऊंगा gU। (हालांकि मैं आपको शिकायतों को समझ सकता हूं, उसी तरीके का उपयोग करने में सक्षम नहीं होने के बारे में जो आप किसी अन्य पाठ संपादक में उपयोग करेंगे)


0

Vim हेल्प मेनुअल में बहुत अच्छा मैपिंग करना है ताकि किसी शब्द को कैप्स मोड में डाला जा सके:

inoremap <c-h> <esc>gUiw`]a

यह उपयोग करता है ctrl-h, जो आम तौर पर सिर्फ एक बैकस्पेस क्लोन है, इसलिए आप वास्तव में इस मैपिंग के साथ कुछ भी नहीं खो रहे हैं।

सामान्य मोड में होने पर कैप्स लॉक एक बुरा सपना है! मुझे आशा है कि वह मदद करेंगे!

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