2010-03-12 8 views
7

एक पंक्ति में Vim ex कमांड:विम - पूर्व मोड कमांड - क्या कर्सर की स्थिति को स्थानांतरित करने का कोई तरीका है?

मैं एक आदेश करने की कोशिश कर रहा हूं और फिर किसी अन्य स्थान पर जाता हूं और उसी आदेश को निष्पादित करता हूं।

कर्सर की स्थिति को स्थानांतरित करने का कोई तरीका है (बाएं/दाएं और ऊपर/नीचे दोनों की आवश्यकता है)?

उत्तर

8

'|' विम स्क्रिप्ट में कमांडेटर है।

:command the_first | second command 

दो आदेशों निष्पादित करता है।

यह भी है: सामान्य कमांड जो आपको पूर्व कमांड लाइन से सामान्य मोड कमांड जैसे गति आदेशों को निष्पादित करने की अनुमति देता है। तो हो सकता है आप की तरह

:/pat.*$/d | exec "normal 32G5w" | /pat.*$/d 

शायद आप अगर आप अधिक विशिष्ट हो सकता है ऐसा करने के लिए कोशिश कर रहे हैं क्या, हालांकि, ऐसा करने के लिए एक आसान तरीका है कुछ कर सकते हैं।

+0

सामान्य इसके बाद किसी अन्य कमांड का उपयोग करने की अनुमति नहीं देता है, इसलिए आपको 'execute'' का उपयोग करना होगा। और आपके पास विकल्प में '/' बंद नहीं है। – ZyX

+0

@ZyX आपको एक विकल्प बंद करने की आवश्यकता नहीं है जब तक कि आप झंडे जोड़ रहे हों। – Zenexer

+0

@ जेनेक्सर आपको 'विकल्प' को बंद करना होगा, क्योंकि बाद में और अधिक आदेश आ रहे हैं। – glts

2

आपका प्रश्न पूरी तरह से स्पष्ट नहीं है लेकिन मुझे लगता है कि आप रिकॉर्डिंग का उपयोग करना चाहते हैं। मुझे उम्मीद है कि आप एच, जे, के, एल आंदोलन आदेशों को जानते हैं। इस प्रयास करें:

<goto command mode> 
    qa 
    i 
    dddd 
    <esc> 
    j 
    q 
    @a 

qa आदेश बफर a में रिकॉर्डिंग शुरू करने के लिए है। q रिकॉर्डिंग को रोकने के लिए प्रयोग किया जाता है। आप @a द्वारा बफर a का उपयोग कर सकते हैं। 10 बार ऑपरेशन करने के लिए [email protected] भी आज़माएं।

+0

क्या आप "रिकॉर्डिंग" में प्रतिस्थापन कमांड कर सकते हैं? –

+0

हाँ, निश्चित है। क्यों नहीं –

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