2010-02-15 6 views
33

मैं Ctrl-n का बड़ा प्रशंसक नहीं हूं, मैं Ctrl-Space का उपयोग करने में सक्षम होना चाहता हूं। कोई विचार है कि मैं यह कैसे कर सकता हूं?मैं किम में स्वत: पूर्ण करने के लिए उपयोग की जाने वाली कीबाइंडिंग कैसे बदल सकता हूं?

+0

क्या पर्यावरण? (विंडोज़? यूनिक्स? कंसोल विम या जीवीआईएम? क्या टर्मिनल?) –

उत्तर

7

आप इसे मैप करने के लिए करने के लिए, कहते हैं, Ctrl-ई, यह हो जाएगा चाहते हैं तो कुछ की तरह:

साथ Ctrl
inoremap <C-E> <C-N> 

समस्या - अंतरिक्ष कि ज्यादातर टर्मिनलों बस इसे देखेंगे एक जगह के रूप में। मुझे लगता है कि आप एक्स के अंदर कुछ टर्मिनल प्रोग्राम का उपयोग कर रहे हैं; यदि आप कुछ अलग उपयोग कर रहे हैं, तो आपको प्रासंगिक प्रतिस्थापन स्वयं को आपूर्ति करना होगा।

बैश के ReadLine सामान्य रूप से है Ctrl - "। शाब्दिक रूप में अगली कुंजी का इलाज" वी को मैप किया तो दबाकर Ctrl - वी फिर एक बैश कमांड लाइन पर होम ^[[H या लाइन की शुरुआत में जाने के बजाए कमांड लाइन पर ऐसा कुछ डालेगा। तो वीCtrl - - अंतरिक्ष दबाने Ctrl की कोशिश करो। शायद आप बस एक जगह देखेंगे। अंतरिक्ष -

उस मामले में, आप या xmodmap साथ मूर्ख बारे में अपने स्वयं के/usr/share/X11/XKB/* फ़ाइलें उत्पादन के लिए कुछ अलग करने के लिए एक्स बताने के लिए जब आप Ctrl प्रेस करना होगा। फ़ायरफ़ॉक्स जैसे प्रोग्राम परवाह नहीं है; वे पता लगाते हैं कि कौन सी बेस कुंजी दबाई जा रही है और खुद के लिए पता लगाया गया है कि कौन से संशोधक दबाए जा रहे हैं। लेकिन सबसे टर्मिनल आधारित प्रोग्राम सिर्फ देखेंगे Ctrl - अंतरिक्ष एक अंतरिक्ष के रूप में जब तक आप बता अंतरिक्ष और Ctrl के इलाज के लिए एक्स - अंतरिक्ष अलग ढंग से।

मुझे संदेह है कि आप अकेले xmodmap के साथ यह परिवर्तन कर सकते हैं; आपको शायद निम्न-स्तर/यूएसआर/शेयर/एक्स 11/एक्सकेबी/* हैकिंग करने की आवश्यकता होगी। यह जटिल है, और मुझे यह भी नहीं पता कि क्या आप पहले स्थान पर एक्स का उपयोग कर रहे हैं, इसलिए मैं इसे वहां छोड़ दूंगा।

यूआरएक्सवीटी जैसे कुछ टर्मिनल आपको अपनी कीबाइंडिंग निर्दिष्ट करने देते हैं। फ़ायरफ़ॉक्स की तरह, वे बता सकते हैं जब यह एक अंतरिक्ष है और जब यह और भी आप कुछ भी विशेष X "033I_TYPED_CONTROL_SPACE_DAMMIT \" कॉन्फ़िगर करने के लिए तो तुम उत्पादन के लिए urxvt बता सकते हैं कर के बिना एक नियंत्रण-स्पेस है जब आप प्रेस Ctrl - अंतरिक्ष। और फिर आप को से <C-N> पर मानचित्र बनाने के लिए vim बता सकते हैं।

संपादित करें: मैं भूल गया कि Ctrl-Space \0 आउटपुट करने के लिए उपयोग किया गया था (मैंने अपने कीबोर्ड पर कहीं और रीमेप किया था)। उस स्थिति में, ऊपर वर्णित सभी जटिलता अनावश्यक है। मैंने जो कहा वह उस व्यक्ति पर लागू होगा जो Ctrl -colon या Alt - स्पेस पर अधिक विदेशी मैपिंग का उपयोग करना चाहता था।

+1

फिर भी, यह अच्छा है कि किसी ने यहां क्या हो रहा है इसका वर्णन करने का प्रयास किया है। अन्य उत्तरों में उनके समाधानों का कोई विवरण नहीं है :-) – JepZ

18

मुझे Ctrl + स्पेस मैपिंग भी पसंद है।

" Remap code completion to Ctrl+Space {{{2 
inoremap <Nul> <C-x><C-o>

आपके मामले में आप चाहते हैं:

inoremap <Nul> <C-n>
+7

यदि आप gvim में हैं, तो आप के बजाय चाहेंगे। – tghw

+0

'<[email protected]>' कुछ टर्मिनलों (सीटी स्पेस) में सी-स्पेस के लिए उपयोग किया जाता है, मुझे लगता है कि सी[email protected] –

29
if has("gui_running") 
    " C-Space seems to work under gVim on both Linux and win32 
    inoremap <C-Space> <C-n> 
else " no gui 
    if has("unix") 
    inoremap <Nul> <C-n> 
    else 
    " I have no idea of the name of Ctrl-Space elsewhere 
    endif 
endif 
+3

के समान है नोट: आपको 'है (" gui_running ")' का उपयोग करना पड़ सकता है, जैसा कि 'है ("gui") 'अगर आपका विम' gui' विकल्प के साथ संकलित किया गया है, तो बस वापस लौटाता है, न कि आप अभी इसका उपयोग कर रहे हैं। – Dogbert

+0

यह यूनिक्स से सीधे कनेक्ट नहीं है। टर्मिनल एमुलेटर द्वारा ' 'का अनुवाद' ' में किया गया है, इसलिए यदि आपको टर्मिनल एमुलेटर मिलता है जो विंडोज़ पर एक ही काम करता है तो यह भी काम करेगा। और '' ** ** ** * * 0 * 'का * नाम * नहीं है, उसी कारण से [बी'' 'का नाम नहीं है, यह केवल टर्मिनल द्वारा उत्पादित प्रतीक है जब आप ' '। – ZyX

संबंधित मुद्दे

 संबंधित मुद्दे