2010-11-05 15 views
13

बस रखो, मैं विम में रीप्लेस मोड को पूरी तरह अक्षम कैसे कर सकता हूं? मैं प्रतिस्थापन मोड का कभी भी उपयोग नहीं करता, लेकिन जब कभी सम्मिलित मोड में प्रवेश करता हूं तो मैं कभी-कभी दुर्घटना से इसे समाप्त करता हूं। स्वाभाविक रूप से, मैं प्रतिबिंबित मोड में हूं, यह समझने से पहले कुछ पात्रों को टाइप करके गुमराह करता हूं। तो, क्या कॉन्फ़िगरेशन सेटअप के माध्यम से या फिर रीप्लेस मोड को पूरी तरह से अक्षम करने का कोई तरीका है?क्या विम में रीप्लेस मोड को अक्षम करना संभव है?

+0

क्या इसके लायक है के लिए, मैं googled और इतने पर कुछ अन्य प्रश्न के माध्यम से चला गया, और यह पूछा नहीं पा सके या उत्तर दिया, शायद मैं अकेला हूं जो प्रतिस्थापन मोड का उपयोग नहीं करता है और इससे छुटकारा पाना चाहता है, या शायद मेरा google-fu बहुत कमजोर था। – coderintherye

+1

तब आप एक वर्ण को कैसे बदल देंगे? यह बहुत उपयोगी है :) –

+1

@ निकोलस वियनोट आप 'r' के साथ एक ही वर्ण को प्रतिस्थापित कर सकते हैं, यह आदेश प्रतिस्थापन मोड से संबंधित नहीं है। – ZyX

उत्तर

14

आप की जगह नहीं निष्क्रिय कर सकते हैं

function s:ForbidReplace() 
    if v:insertmode isnot# 'i' 
     call feedkeys("\<Insert>", "n") 
    endif 
endfunction 
augroup ForbidReplaceMode 
    autocmd! 
    autocmd InsertEnter * call s:ForbidReplace() 
    autocmd InsertChange * call s:ForbidReplace() 
augroup END 
+0

धन्यवाद। मैं कल काम पर कोशिश करूंगा और देख सकता हूं कि यह कैसा चल रहा है। – coderintherye

+0

यह बहुत अच्छा काम किया, धन्यवाद!अन्य उपयोगकर्ताओं के लिए बस एक अतिरिक्त नोट, उपर्युक्त आम तौर पर आपकी .vimrc फ़ाइल में जाएगा, कम से कम वह जगह है जहां मैंने इसे मेरे लिए रखा था। – coderintherye

+0

यह 'imap ' से बेहतर कैसे है? ऐसा लगता है कि – istepaniuk

3

सुनिश्चित नहीं हैं कि अगर यह सबसे अच्छा तरीका है, लेकिन आप अपने .vimrc में कुछ भी नहीं करने के लिए आर और आर मैप कर सकते:

map R <C-V><C-V> 
map r <C-V><C-V> 

संपादित करें: या इस:

map R <Nop> 
map r <Nop> 
+4

आपको पढ़ना चाहिए: मदद '। –

+1

यह बेहतर लगता है, धन्यवाद! मैं अपना उत्तर –

+1

संपादित करूंगा, यह कुछ भी नहीं करता है जब '' द्वारा डालने मोड को बदल दिया जाता है या जब आप 'gR' (आभासी प्रतिस्थापन) के साथ प्रतिस्थापन मोड दर्ज करते हैं। – ZyX

-1

उपयोग: मोड, लेकिन आप autocommands जो बदलें बदल जाएगा और आभासी मोड मोड डालें करने के लिए वापस की जगह कर सकते हैं मैं सम्मिलित में के बजाय जाना का उपयोग करने के सम्मिलित कुंजी

इस तरह आप नहीं सम्मिलित मोड

3

बस अपने .vimrc में जोड़ने के फिर से प्रवेश करेंगे imap <Insert> <Nop>

हो जाएगा कि कुंजी पर्याप्त

2

मुझे यह समाधान बेहतर मिला। सम्मिलित मोड काम करने के लिए कुंजी डालें, लेकिन दूसरी डालने वाली हिट पर मोड को प्रतिस्थापित करें अक्षम है। अपने .vimrc में जगह अगले दो पंक्तियों

imap <Insert> <Nop> 
inoremap <S-Insert> <Insert> 

(garyjohn @ सुपर उपयोगकर्ता साइट ने उल्लेख किया)

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