2012-02-01 17 views
5
में कुछ

मैं Ctrl मैप किया गया है करने के लिए - जे नीचे बफर करने के लिए ले जाने के लिए। हालांकि यह हार्ड मैप किया गया था, इसलिए मुझे पर इसे मैप करने योग्य बनाने के लिए नीचे दी गई पहली पंक्ति लिखनी पड़ी।मानचित्रण <C-j> विम

नीचे दी गई स्क्रिप्ट पूरी तरह से काम करती है, सिवाय जब मैं .sh फाइलें लिखता हूं। मेरे पास बैश-समर्थन प्लगइन स्थापित है।

let g:C_Ctrl_j = 'off' 
map <C-j> <C-w>j 

संपादित करें: मुझे अभी पता चला है कि समस्या बैश-सपोर्ट में है। डालने (या ऐसा ही कुछ) कूद करने के जो एक पूर्वनिर्धारित बिंदु पर कर्सर ले जाता है और मोड डालने के लिए चला जाता है जे - बैश-समर्थन नक्शे Ctrl। मुझे लगता है कि बैश-सपोर्ट स्क्रिप्ट में यह काम करना होगा हालांकि मुझे उन फ़ाइलों के साथ गड़बड़ पसंद नहीं है।

EDIT2: चलो g: C_Ctrl_j = 'off' वास्तव में csupport प्लगइन कूद सम्मिलित सुविधा को बदल देता है।

उत्तर

6

the document of bash-support.vim के अनुसार:

Ctrl-j का मूल अर्थ है 'इस कदम [n] लाइनों के लिए उलटे' (देखें | CTRL-j |)। यदि आप डिफ़ॉल्ट का उपयोग करने के आदी हैं और इन कूद लक्ष्यों को पसंद नहीं करते हैं तो आप उन्हें बंद कर सकते हैं। फ़ाइल में निम्न पंक्ति रखो '।vimrc ':

देना छ: BASH_Ctrl_j =' off '

तो आप अपने vimrc में let g:BASH_Ctrl_j = 'off' डाल करने के लिए है।

इसके अतिरिक्त, nnoremap <C-j> <C-w>j का उपयोग map <C-j> <C-w>j के बजाय अपने vimrc में करें। उत्तरार्द्ध सामान्य, दृश्य और ऑपरेटर-लंबित मोड में प्रमुख मैपिंग को परिभाषित करता है। कुंजी मैपिंग भी पुनरावर्ती रूप से विस्तारित हैं। जब आप अधिक महत्वपूर्ण मैपिंग को परिभाषित करते हैं तो यह परेशानी का कारण बन सकता है।

5

Ctrl - जे (0x0A) विशेष वर्ण, Line Feed है। जे (0x0A) -

वहाँ एक अच्छा मौका है कि इस कुंजी प्रेस के रूप में Ctrl विम में नहीं आ रहा है नहीं कर रहा है है।

अपने Mac पर एक Terminal.app विंडो में

विम में, Ctrl टाइपिंग - वीCtrl - जे प्रदर्शित करता है ^@, (0x00 या शून्य)। वीCtrl - - जी और Ctrl - वीCtrl - कश्मीर प्रदर्शन ^G और ^K क्रमश: Ctrl जबकि।

मैं एक मानचित्रण का उपयोग (- डब्ल्यूजे या बस अपने आप को Ctrl उपयोग करने के लिए प्रशिक्षण) सुझाव देना चाहेंगे।

+1

चलो g: C_Ctrl_j = 'off' Ctrl-j के लाइन फीड के हार्ड मैपिंग को हटा देता है। –

+1

वास्तव में? वह दस्तावेज कहां है? मैंने दो कंप्यूटरों पर कोशिश की है और इससे कोई फर्क नहीं पड़ता। – Johnsyweb

+2

http://lug.fh-swf.de/vim/vim-doc/csupport.html#csupport-Ctrl-j यह csupport दस्तावेज़ का हिस्सा है csupport प्लगइन में Ctrl-j की भूमिका बताता है। मैंने कुछ महीने पहले कहीं इस रीमेपिंग के बारे में पढ़ा है और मुझे नहीं पता कि यह कहां था। –

1

, गैर पुनरावर्ती मैपिंग का प्रयास करें

nnoremap <C-j> <C-w>j 

यह करना चाहिए।

1

मुझे एक ही समस्या थी, लेकिन एक अलग कारण के लिए। वीआईएम-लाटेक्स imaps.vim प्लगइन का उपयोग करता है, जो remaps some keys, Ctrl - जे सहित। क्या मेरे लिए काम किया मेरी .vimrc में एक autocmd स्थापित करने के लिए है:

augroup vimrc 
    au! 
    au VimEnter * unmap <C-j> 
    au VimEnter * noremap <C-j> <C-w>j 
augroup END 

VimEnter ट्रिगर कि remap के बाद vim शुरू होता है निष्पादित करेगा, और प्लग-इन लोड किए गए हैं सुनिश्चित करती है (अगर मैं इसे सही ढंग से समझ), इसलिए यह imaps.vim प्लग-इन के मानचित्रों को ओवरराइट करता है। अनैप आवश्यक नहीं है, लेकिन यह चोट नहीं पहुंचा सकता है।

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