हाल ही में मैंने एक ही समस्या में ठोकर खाई। के रूप में
:26call SplitToLines()
जो लाइन संख्या 26. लेकिन कोड विभाजित हैं इस प्रकार है,
function SplitToLines() range
for lnum in range(a:lastline, a:firstline, -1)
let words = split(getline(lnum))
execute lnum . "delete"
call append(lnum-1, words)
endfor
endfunction
इस लाइन पर्वतमाला, जैसे के साथ प्रयोग किया जा सकता है: मेरे समाधान निम्नलिखित vim समारोह (मेरी .vimrc
में डाल) है लाइनों की सीमाओं को सुदृढ़ रूप से भी संभालती है (यही कारण है कि लूप में रेंज रिवर्स ऑर्डर में बनाई गई है)।
1,10call SplitToLines()
कई लाइनों में लाइनों 1 से 10 तक विभाजित कर देगा। हालांकि, मैं ज्यादातर इसे
'<,'>call SplitToLines()
जो दृश्यमान रूप से चिह्नित सभी पंक्तियों को विभाजित करता है। बेशक आप इस फ़ंक्शन कॉल के लिए कुछ एकल अक्षर संक्षेप को परिभाषित कर सकते हैं (ऑटो पूर्णता के साथ टैब मुझे यह आवश्यक नहीं लगता है)। यह भी ध्यान रखें कि एक अतिरिक्त तर्क जोड़कर जिसे 'विभाजन' द्वारा भी उपयोग किया जाएगा, आपके पास एक ऐसा फ़ंक्शन हो सकता है जो विशिष्ट पैटर्न (केवल सफेद स्थान की बजाय) पर विभाजित रेखाएं करता है।
बस कुछ शॉर्टकट से मैप सकता है ... – tristan
कर्सर एक अंतरिक्ष है कि आप एक नई पंक्ति के साथ बदलना चाहते हैं पर तैनात किया जाता है तो, 's^एम^['। ': कॉल सेटलाइन ('।', विभाजन (गेटलाइन ('।')))' वर्तमान लाइन को व्हाइटस्पेस द्वारा विभाजित करेगा और इसे कई लाइनों में विस्फोट कर देगा। लेकिन उनमें से कोई भी आप जो भी मांग रहे हैं वह करता है; इसके लिए, मैं अब आपके पास जो कुछ भी है उससे बेहतर कुछ भी नहीं सोच सकता, शायद एक शॉर्टकट बाध्यकारी से @ मिचेल और @ ट्रिस्टन सुझाव देता है। – ephemient
संबंधित: 'r' व्हाइटस्पेस चार के स्थान पर एक लाइनब्रेक डालने के लिए एक अंतर्निहित 2 कीस्ट्रोक तरीका है। इस तरह की अधिक परिष्कृत मैपिंग्स [Insertlessly.vim] (https://github.com/dahu/Insertlessly) में प्रतीक्षा कर रही हैं। –