2010-01-27 14 views
16

मैं vim विकी सुझावों को देखा और यह इसी क्रम में Esc पुन: मैप करने के लिए लॉक टोपी को आप निम्नलिखित खिड़कियों कोड को संपादित करने के लिए है का कहना है:विम में सीएपी लॉक में एएससी को रीमेप करने के लिए इतना जटिल क्यों है?

REGEDIT4 
[HKEY_CURRENT_USER\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00 

क्या यह संभव है केवल जोड़ने या संशोधित करके लॉक टोपी के लिए Esc पुन: मैप करने के लिए _vimrc में लाइनें?

+0

क्षमा करें, मुझे * पूछना है: आप ऐसा क्यों करना चाहते हैं? – paxdiablo

+8

पक्सडीब्लो, यह बेहद आम है। क्यूं कर? चूंकि सीएपीएस लॉक कभी सबसे बेकार कुंजी है, लेकिन इसमें प्रमुख अचल संपत्ति है। यह कहने के लिए एक और अधिक सुविधाजनक स्थान है, कहें, एक और ctrl कुंजी, या, यदि आपने कभी भी Vim का उपयोग किया है, तो बहुत आवश्यक ईएससी कुंजी है। – Jay

+0

क्षमा करें, मुझे गलत समझा। मैंने सोचा था कि आप ईएससी कुंजी का उपयोग कैप्स्लॉक के रूप में करना चाहते थे। फिर भी मुझे यह समझने में कठिनाई है कि ईएससी कुंजी को एक या दो इंच नीचे ले जाकर बहुत अधिक समय बचाया जाएगा।क्या आपने वास्तव में पूरे दिन बर्बाद समय का आकलन किया है? शायद आपको एक गैर-मोडल संपादक के बारे में सोचना चाहिए :-) – paxdiablo

उत्तर

21

मैं अनुशंसा करता हूं कि आप इसके लिए ऑटोहॉटकी का उपयोग करें। उदाहरण के सेट vim में से बचने के लिए टोपियां, और अन्य सभी स्थानों पर नियंत्रण के लिए,

SetTitleMatchMode,2 
#IfWinActive,VIM 
    CAPSLOCK::ESC 
return 

#IfWinActive 
    CAPSLOCK::CTRL 
return 

यह स्क्रिप्ट:

आप एक प्रति आवेदन हॉटकी परिवर्तन कर सकते हैं।

+0

ऑटोहॉटकी महान – alexchenco

+0

@jay है लेकिन कैप्स लॉक तब खत्म हो गया था? – sayth

+0

@sayth सबसे अधिक इसकी आवश्यकता नहीं है - मुझे इसके बिना वर्षों से मिल गया है। – Jay

1

कैप्सलॉक कुंजी के लिए कोई विम कुंजी पहचानकर्ता नहीं है, इसलिए आपको इसे स्कैन कोड के साथ करना होगा।

यह ctrl कुंजी या शिफ्ट कुंजी को किसी चीज़ पर मैप करने की कोशिश करना होगा - वे चाबियाँ स्वयं कुछ भी नहीं करती हैं, वे महत्वपूर्ण संशोधक हैं, इसलिए वे उसी तरह फंस नहीं सकते हैं।

1

मैपिंग को ओम स्तर पर ओम स्तर पर किया जाना है, इसलिए जटिलता ओएस से आती है।

! Esc on caps lock 
remove Lock = Caps_Lock 
keysym Caps_Lock = Escape 

हालांकि, मुझे नहीं लगता कि REGEDIT स्क्रिप्ट इतना बुरा है: उदाहरण के लिए, मेरे Ubuntu मशीन पर मैं ~/.Xmodmap में निम्नलिखित है। यह बदसूरत है, लेकिन यह केवल दो लाइनों है!

+5

के लिए '#IfWinActive ahk_class Vim' का उपयोग करना आसान था: 'setxkbmap -option कैप्स: एस्केप' या एक्स/इनपुट कॉन्फ़िगरेशन के प्रासंगिक खंड में जोड़ें। – ephemient

+0

@ephemient उस टिप के लिए धन्यवाद। –

+1

जीयूआई के माध्यम से ऐसा करना भी संभव है। सिस्टम/प्राथमिकता/कीबोर्ड पर जाएं, लेआउट टैब खोलें, विकल्प संवाद खोलें। कैप्स लॉक शीर्षक के तहत से चुनने के लिए विभिन्न व्यवहारों की एक सूची है और उनमें से एक कैप्स लॉक और ईएससी को स्वैप कर रहा है। – hugomg

1

आप बचने के लिए Ctrl-C का भी उपयोग कर सकते हैं (कम से कम vim में उपलब्ध)। जो मैं सामान्य रूप से उपयोग करता हूं। मैं आमतौर पर नियंत्रण और कैप्सलॉक स्वैप करता हूं, और विंडोज़ और कीबोर्ड में रजिस्ट्री सेटिंग्स के माध्यम से ऐसा किया है जो उबंटू में है।

संपादित करें: के रूप में @mMontu कृपया नोट, Ctrl-C Esc से ज्यादा क्रूर है: के रूप में, this appropriate question में कहा गया है

vim जाँच यदि आपने अभी कोई संक्षिप्त नाम का हिस्सा लिखा परेशान करने के लिए नहीं जा रहा है, और यह कल्पना ऑटो आदेश अपने प्लगइन्स आप डालने मोड छोड़

मैंने देखा नहीं था क्योंकि मेरे vimming अभी तक ऐसा उन्नत नहीं है हर बार इसके लिए सेट चलाने के लिए नहीं जा रहा है।

+2

आपको Ctrl-C और ESC के बीच सूक्ष्म अंतर से अवगत होना चाहिए: http://stackoverflow.com/questions/5030164/whats-the-difference-between-ctrlc-and-ctrl/5036294#5036294 – mMontu

1

इसके अलावा आप इसे आजमा सकते हैं: SharpKeys। मैंने कैपॉक और एएससी को इसके साथ बदल दिया।

1

एक अन्य विकल्प है कि अच्छी तरह से काम मुझे अनिवार्य रूप से this website

निर्देश पाया का इस्तेमाल किया गया के लिए: माइक्रोसॉफ्ट के कीबोर्ड लेआउट निर्माता स्थापित करें, तो के कैप्स लॉक और अपने स्वयं के कस्टम लेआउट बनाने remapping अनुमति देने के लिए अपने स्रोत कोड को संपादित।