http://vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste
कोड पेस्ट के लिए ऑटो-इंडेंटिंग टॉगल करें
पृष्ठभूमि
यदि आप पाठ को पेस्ट करने के लिए Vim कमांड का उपयोग करते हैं, तो कुछ भी अप्रत्याशित नहीं होता है। समस्या केवल तब उत्पन्न होती है जब किसी अन्य अनुप्रयोग से पेस्ट किया जाता है, और केवल तब जब आप विम के GUI संस्करण का उपयोग नहीं कर रहे हैं। विम के कंसोल या टर्मिनल संस्करण में, किसी अन्य एप्लिकेशन से टेक्स्ट पेस्ट करने के लिए कोई मानक प्रक्रिया नहीं है। इसके बजाय, टर्मिनल कीबोर्ड बफर में पाठ सम्मिलित करके चिपकाने का अनुकरण कर सकता है, इसलिए विम को लगता है कि पाठ उपयोगकर्ता द्वारा टाइप किया गया है। प्रत्येक पंक्ति के समाप्त होने के बाद, विम कर्सर को आगे बढ़ा सकता है, इसलिए अगली पंक्ति अंतिम के समान इंडेंट के साथ शुरू होती है। हालांकि, यह पहले से ही चिपकाए गए पाठ में इंडेंटेशन को बदल देगा।
पेस्ट टॉगल करें
निम्नलिखित को अपने vimrc में रखें (जो भी कुंजी आप चाहते हैं उसे बदलें):
set pastetoggle=<F2>
किसी अन्य एप्लिकेशन से चिपकाने के लिए:
- इन्सर्ट मोड शुरू करें।
- F2 दबाएं ('पेस्ट' विकल्प को चालू करता है)।
- क्लिपबोर्ड से टेक्स्ट पेस्ट करने के लिए अपने टर्मिनल का उपयोग करें।
- F2 दबाएं ('पेस्ट' विकल्प को बंद कर देता है)।
फिर चिपकाए गए पाठ के मौजूदा इंडेंटेशन को बरकरार रखा जाएगा।
आपको पहले इंसर्ट मोड शुरू नहीं करना है, लेकिन यदि आप सामान्य मोड में हैं और F2 के लिए मैपिंग है, तो वह मैपिंग लागू होगी, और 'पेस्टेटॉगल' फ़ंक्शन संचालित नहीं होगा।
कुछ लोग आपके vimrc के लिए निम्नलिखित विकल्प द्वारा स्थिति पंक्ति में दिखाई गई दृश्य प्रतिक्रिया पसंद करते हैं:
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode
पहली पंक्ति एक मैपिंग सेट करती है जिससे कि सामान्य मोड में F2 दबाने पर 'पेस्ट' विकल्प उल्टा हो जाएगा, और फिर उस विकल्प का मान दिखाएगा। दूसरी पंक्ति आपको आवेषण मोड में 'प्रेस' को चालू और बंद करने के लिए F2 दबाने की अनुमति देती है। तीसरी पंक्ति यह प्रदर्शित करने में सक्षम करती है कि क्या 'पेस्ट' को इन्सर्ट मोड में चालू किया गया है।