2016-12-12 12 views
7

कॉपी करते समय कोड की प्रत्येक पंक्ति इंडेंट इंडेंट करता है जब मैं विम में कोड के ब्लॉक को कॉपी और पेस्ट करता हूं, तो प्रत्येक पंक्ति को एक से इंडेंट किया जाता है।विम

print "Hello" 
    print "World" 
    print "I'm copying" 
    print "and pasting" 

जब विम में चिपकाने कौन सा गड़बड़ हो जाता है:

print "Hello" 
     print "World" 
      print "I'm copying" 
       print "and pasting" 

कोड की लंबी लाइनों को कॉपी के लिए, यह बहुत निराशा होती है, क्योंकि सब कुछ के लिए (अच्छा नहीं संरेखण से बाहर हो जाता है उदाहरण के लिए, मैं इस स्रोत अजगर)।

यहां मेरा vimrc है। यह वर्तमान में न्यूलाइन पर ऑटो इंडेंट्स है, और मानक 4 रिक्त स्थान वाले टैब को प्रतिस्थापित करता है।

filetype plugin indent on 
" show existing tab with 4 spaces width 
set tabstop=4 
" when indenting with '>', use 4 spaces width 
set shiftwidth=4 
" On pressing tab, insert 4 spaces 
set expandtab 

हालांकि यह कॉन्फ़िगरेशन काम करता है, कुछ कॉपी-पेस्ट समस्या का कारण बन रहा है। यह कैसे तय किया जा सकता है, लेकिन फिर भी उन व्यवहारों को बनाए रखा है जिन्हें मैंने परिभाषित किया है?

+0

क्या आपने पेस्ट विकल्प का उपयोग करने का प्रयास किया है? vim –

+1

में कोड पेस्ट करने से पहले 'पेस्ट सेट करें' [संभावित रूप से पाठ को चिपकाते समय ऑटो इंडेंट बंद करना] (http://stackoverflow.com/questions/2514445/turning-off-auto-indent-when- पेस्टिंग-टेक्स्ट-इन-विम) –

+0

': आर! बिल्ली 'के बाद'^डी 'किसी भी मोड से बाहर निकलने या विकल्पों को सेट/सेट करने की आवश्यकता से बचाता है। – sideshowbarker

उत्तर

7

पेस्ट मोड पर स्विच करने के लिए :set paste का उपयोग करें।

This article explains paste mode

यह vim में चिपकाया जा सकता पाठ के लिए विशेष रूप में बनाया गया था, तो यह किसी भी इनपुट मैपिंग को गति प्रदान नहीं करता है। जब आप अपनी मैपिंग वापस पाने के लिए होते हैं तो :set nopaste पर याद रखें।