2012-03-17 11 views
7

मैं निम्नलिखित वैश्विक कमांड के साथ उनके नाम के पहले अक्षर के अनुसार अपने पाठ में पैराग्राफ क्रमबद्ध करना चाहते हैं:विम में एक से अधिक वैश्विक आदेशों त्रुटि देता है: नहीं कर सकते: वैश्विक पुनरावर्ती

g/_p/,/^$/mo$ 

अकेले काम करता है। लेकिन जब मैं एक ही बार में कई वैश्विक आदेशों का उपयोग करें, तो एक त्रुटि होती है:

Cannot do :global recursive 

मैं इन आदेशों क्रमिक रूप से एक ही बार में चला सकते हैं:

g/_p/,/^$/mo$|g/_w/,/^$/mo$ 

यह निम्न त्रुटि देता है?

उत्तर

7
:exe 'g/_p/,/^$/mo$' | g/_w/,/^$/mo$ 

देखें :help:bar

+1

इस मामले में ': execute' में 'वैश्विक' आदेशों को लपेटना आवश्यक नहीं है, यह केवल पहले को लपेटने के लिए पर्याप्त है:' exe'g/_p /,/^ $/mo $ ' | जी/अभी यह सिर्फ मानक /,/^ $/मो $ '। –

+0

@ib .: मैंने आपके सुझाव को शामिल किया है। अच्छा है, धन्यवाद! मैं विशेष रूप से इस तथ्य को पसंद करता हूं कि आपने 'exe' और इसके पैरामीटर' '...' के बीच की जगह भी सहेजी है। xD –

0

Here vimscript उस तरह सभी अनुच्छेदों की कुछ लाइनें हैं। लेकिन वे इंडेंटेशन द्वारा पैराग्राफ को पहचानते हैं, रिक्त लाइन नहीं। लेकिन निश्चित रूप से कोई खाली रेखाओं से अनुच्छेदों को अलग करने के लिए इसे अनुकूलित कर सकता है।