2011-01-22 5 views
5

हाय मै मैकवीम 7.3 का उपयोग कर रहा हूं। मैं smash into vim नामक एक पीपकोड ट्यूटोरियल का अनुसरण कर रहा हूं।मैमिंग्स पर एक त्रुटि फेंकने पर मैपिंग (E10: का पालन किया जाना चाहिए /,? या & 0)

विषयों में से एक है कुछ आदेशों के लिए विभिन्न "मैपिंग्स" (मुझे उनके बारे में शॉर्टकट या उपनाम के रूप में) असाइन करना है।

उदाहरण के लिए, यहां मेरा हिस्सा है। vimrc फ़ाइल (नीचे देखें) सहायता फ़ाइलों का कहना है कि डिफ़ॉल्ट रूप से बैकस्लैश (\) के रूप में असाइन किया गया है। हालांकि, जब मैं कमांड लाइन मोड दर्ज करता हूं और टाइप करता हूं: \ tt मुझे निम्न त्रुटि मिलती है:

E10: \ द्वारा पीछा किया जाना चाहिए /,? या &

मैं क्या गलत कर रहा हूं पर कोई विचार? मैं बता सकता हूं कि मेरी .vimrc फ़ाइल का उपयोग मैकवीम बी/सी द्वारा किया जा रहा है, मैंने सेमी-कोलन और कोलन बाइंडिंग को स्वैप करने के लिए फ़ाइल का उपयोग किया था और अब; संपादक को कमांड लाइन मोड में प्रवेश करने का कारण बन जाएगा।

" Tab mappings. 
map <leader>tt :tabnew<cr> 
map <leader>te :tabedit 
map <leader>tc :tabclose<cr> 
map <leader>to :tabonly<cr> 
map <leader>tn :tabnext<cr> 
map <leader>tp :tabprevious<cr> 
map <leader>tf :tabfirst<cr> 
map <leader>tl :tablast<cr> 
map <leader>tm :tabmove 


" Controversial...swap colon and semicolon for easier commands 
nnoremap ; : 
nnoremap : ; 

vnoremap ; : 
vnoremap : ; 

उत्तर

9

आप <leader>tt की तरह कुछ यह आदेश मोड में काम नहीं करता है मानचित्रण कर रहे हैं (: का उपयोग कर लागू), लेकिन सामान्य मोड में।

तो आपको \tt: के बिना टाइप करना है और देखें कि क्या होता है: एक नया टैब उम्मीदपूर्वक खुलना चाहिए।

:

नई मैपिंग को परिभाषित करने में <leader> के उपयोग के बारे में, मुख्य ब्याज अगर आप \ के उपयोग से संतुष्ट नहीं हैं, तो आप कुंजी अपने .vimrc की शुरुआत में निम्नलिखित तरीके को फिर से परिभाषित कर सकते हैं वह यह है कि

:let mapleader = ","

और आप नेता कुंजी बाद के हर मानचित्रण आदेश में बदल जाएगा: \tt अपने रास्ते पर ,tt

गुड लक हो जाता है एक कुशल विम उपयोगकर्ता बनने के लिए!

+0

आप सच बोलते हैं, मेरे वफादार और युवा साथी। इसके लिए धन्यवाद! – user141146

+0

अच्छी नौकरी, कोई भी कमांड का उल्लेख नहीं करता है (:) बनाम सामान्य मोड - बिना ':' नेताओं का उपयोग करते समय- यह नए शौक –

2

आप दो समस्याएं हैं: एक है कि आप map उपयोग कर रहे हैं और उसके बाद अर्धविराम पुन: मैप, तो map <leader>tt :tabnew<CR> की कोशिश करता ;tabnew<CR> (; दोहराता पिछले टी/टी/च/एफ गति, ta चाल अगले a के लिए कर्सर, n की कोशिश करता करने के लिए निष्पादित करने के लिए है पिछली खोज दोहराएं और इसी तरह) और यह काम नहीं करेगा। आप का उपयोग करना चाहिए noremap जहां संभव हो, nore बिना map का उपयोग नहीं करते जब तक आप जानते हैं कि आप क्या कर रहे हैं (और मैं भी nnoremap यहाँ के noremap बदलने का सुझाव: मुझे नहीं लगता कि आप दृश्य से टैब बदलने के लिए और, विशेष रूप से, ऑपरेटर-लंबित आवश्यकता क्यों है मोड)। दूसरी समस्या यह है कि noremap सामान्य मोड में कमांड को रीमेप्स करता है, इसलिए आपको \tt टाइप करना होगा, :\tt या ;\tt नहीं।

+0

के लिए बहुत उपयोगी है। मैं बस स्विच कर रहा था; और: यह देखने के लिए कार्यक्षमता कि मेरी .vimrc फ़ाइल ठीक से "प्रयुक्त" हो रही थी, लेकिन मैंने उस नुकीले की पूरी तरह से सराहना नहीं की थी जिसे आपने यहां बताया था। – user141146

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