2012-11-22 31 views
7

की डालने मैपिंग अक्षम करें एक प्लगइन <leader>is के लिए मैपिंग को मेरे सम्मिलित मैपिंग में जोड़ता है। मेरे पास कुछ विचार हैं जो यह हो सकता है। लेकिन इससे कोई फर्क नहीं पड़ता कि मैं विदेशी प्लगइन में कुछ भी नहीं बदलना चाहता हूं। तो मैं इस मैपिंग को अक्षम करना चाहता हूं। मैंने यह कोशिश की:वीआईएम प्लगइन्स

imap <leader>is <nop> 

मैंने मदद नहीं की।

आपके सुझाव क्या हैं?

बीटीडब्ल्यू, मैं पूछना चाहता हूं कि vimrc में प्लगइन के सभी सम्मिलित मैपिंग को अक्षम कैसे करें?

उत्तर

10

:iunmap आदेश एक डालने मोड मैपिंग निकालने, का उपयोग करें:

:iunmap <Leader>is 

मैं चाहे वह "थोक unmapping" ऐसा करना संभव है पता नहीं है, लेकिन कम से कम आप सभी सक्रिय डालने मोड मैपिंग सूचीबद्ध कर सकते हैं

:imap 

या और भी बेहतर,

:verbose imap 

साथ साथ जो एच आपको यह भी बताएगा कि मैपिंग को पहले स्थान पर परिभाषित किया गया है।


संपादित करें: स्पष्ट करने के लिए, unmapping के बाद प्लगइन लोड किया गया है किया जाना चाहिए। ऐसा करने के लिए, ~/.vim/after/plugin/ में निम्नलिखित सामग्री के साथ एक फ़ाइल बनाने (देखें @ zyx का जवाब):

" myafter.vim: will be executed after plugins have been loaded 
iunmap <Leader>is 
+0

विम एक त्रुटि देता है: ऐसी कोई मैपिंग नहीं है। हालांकि, यह मानचित्रण अभी भी imap सूची में है। – user14416

+0

@ user14416 @ ज़ीएक्स का उत्तर देखें: 'vunrc ...' में आपके vimrc में कोई प्रभाव नहीं है! मैपिंग के लिए ज़िम्मेदार प्लगइन की पहचान करने के लिए 'verb imap' का उपयोग करें, फिर प्लगइन के लिए अपनी अनमैपिंग कमांड के साथ "बाद" निर्देशिका बनाएं। – glts

+0

मैंने 'प्लगइन/ .vim' बनाया है। अभी भी कोई प्रभाव नहीं है। – user14416

7

प्लगइन से पहले आपके आदेश को घुमाए जाने से पहले घुमावदार मैपिंग को परिभाषित करता है और इसीलिए इसका कोई प्रभाव नहीं पड़ता है। इसे प्रभावी बनाने के लिए आपको इसे उस प्लगइन के बाद चलाया जाना चाहिए जिसे सामान्यतः ~/.vim/after/plugin/disable_mappings.vim (disable_mappings कार्यों के बजाय कोई नाम) में डालकर प्राप्त किया जाना चाहिए। दूसरा VimEnter इवेंट का उपयोग कर रहा है:

augroup DisableMappings 
    autocmd! VimEnter * :inoremap <leader>ic <Nop> 
augroup END 

। सभी मैपिंग को अक्षम करने के लिए :h 'paste' और :h 'pastetoggle', :h :imapclear देखें (हालांकि बाद वाले अस्थायी अक्षम करने के बजाय मैपिंग को हटा देंगे)।


बेशक, आप भी iunmap उपयोग कर सकते हैं बस मैं कहाँ inoremap … <Nop> उपयोग करने के लिए सुझाव दिया। मैं इस आदेश को कैसे भूल गया?