vim

2010-08-19 13 views
16

मैं निम्नलिखित प्रविष्टि के साथ nerdtree के लिए मेरे F2 मैप करना चाहते हैं में मानचित्रण समारोह चाबियाँ:vim

map <F2> :NERDTreeToggle<CR> 

लेकिन फिर भी उससे पहले, और vimrc सहेजने के बाद, जब भी मैं प्रेस F2, यह सिर्फ के मामले स्विच पत्र जिन पर कर्सर मौजूद है। बाद में पता चला कि कोई भी फ़ंक्शन कुंजी करता है। F5 5 अक्षरों के मामले स्विच करता है और इसी तरह। क्या यह किसी अन्य प्लगइन की वजह से है? मैं वर्तमान में c.vim, snippetsEmu, surround, nerdtree, और minibufexpl

मेरे vimrc में किसी भी फ़ंक्शन कुंजी के लिए कोई कीमैपिंग नहीं है।

उत्तर

17

आपकी समस्या यह है कि vim यह नहीं जानता कि जब आप <F2> दबाते हैं तो टर्मिनल उत्सर्जित करता है। कुछ टर्मिनलों पर यह <Esc>[12~ जैसे कुछ उत्सर्जित करता है, इसलिए विम वर्तमान मोड (या केवल बीप अगर यह नहीं कर सकता) छोड़ देता है (<ESC>), कुछ भी नहीं करता है ([1: [ के बाद कुछ कुंजी होनी चाहिए, लेकिन 1 नहीं, इसलिए यह कुछ भी नहीं करता है) और दो अक्षरों के मामले में परिवर्तन (2~)। तो, आप .vimrc खोलने के लिए और वहाँ लिखने निम्नलिखित करना चाहिए:

set <F2>=<C-v><F2>

< सी वी > <F2> का मतलब है जहां कि आप <C-v> और फिर <F2> प्रेस चाहिए। इस लाइन को विम को उन कोडों के सटीक क्रम को बताना चाहिए जो टर्मिनल द्वारा उत्सर्जित होते हैं जब आप <F2> दबाते हैं। उसके बाद, noremap <F2> whatever का उपयोग करें और इसे काम करना चाहिए। यदि यह एकमात्र टर्मिनल नहीं है जिसका आप उपयोग कर रहे हैं, तो आप इस लाइन से पहले if $TERM==#"<C-r>=$TERM<CR>" डाल सकते हैं और endif के बाद।

+0

@Mlkhail क्या आपने पढ़ा है जो मैंने लिखा है? – ZyX

+0

ओह। मैंने आखिरी बार शीर्ष भाग को याद किया था। यह अब काम कर रहा है। तनक्स.लसो, क्या नोरमैप करता है? – woodstok

+2

@Mlkhail 'map' की तरह, लेकिन अन्य उपयोगकर्ता मैपिंग का उपयोग रोकता है।उदाहरण के लिए, यदि आपके पास 'बी 'और' imap b c 'imap है, तो' a' दबाकर 'c' होगा। यदि आपके पास 'बी' में अतिक्रमण है तो 'ए' दबाकर 'बी' का कोई फर्क नहीं पड़ता कि 'बी' रीमेप किया गया है या नहीं। मैं सलाह देता हूं कि कभी भी 'मानचित्र' का उपयोग न करें जबतक कि आपको पता न हो कि आपको रीमेपिंग की आवश्यकता है (उदाहरण के लिए, ' 'मैपिंग के साथ)। – ZyX

5
:map <F2> :NERDTreeToggle<CR> 

विम शुरू करने के बाद आप

:map <F2> 

साथ देख सकते हैं क्या F2 करने के लिए मैप किया गया है। यह संभव है कि प्लगइन्स मैपिंग को बदल दें (.vimrc में दिखाई नहीं दे रहे हैं)

+0

मैंने कोशिश की .. यह कहता है कि कोई मैपिंग नहीं मिली है। बीटीबी, एफ 2 निर्दिष्ट करने के लिए, आप "एफ" और "2" दाएं दबाएंगे? या क्या हम ctrl + v का उपयोग करने के लिए प्रयास करते हैं? मैंने दोनों कोशिश की .. काम नहीं कर रहे हैं। साथ ही मैं एक फ्रीबीएसडी सर्वर में लॉगिन करने के लिए एसएसएच सिक्योर शैल क्लाइंट का उपयोग कर रहा हूं। – woodstok

+0

आप किसी भी सेट अप gvim -u NONE -U NONE -N फिर डालने मोड में देखें कि जब आप फ़ंक्शन कुंजियों को दबाते हैं तो डालने के बाद क्या होता है। फिर मानचित्रण f2 जैसे सरल कुछ प्रयास करें: मानचित्र "+ yy (बफर पेस्ट करने के लिए वर्तमान पंक्ति झटका) इसके अलावा, आप किसी भी फ़ंक्शन कुंजी मैप कर सकते हैं (हाँ आप प्रकार च करते हैं और 2) – zzapper

+0

भी देखें करने के लिए टाइप करें? क्या और कहाँ एफ 2 सोचता है कि यह पर सेट है: वर्बोज़ मानचित्र zzapper

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