लाइनों का चयन करें फिर :
कमांड मोड दर्ज करने के लिए दबाएं । विम स्वचालित रूप से भर जाएगा '<,'>
, जो चयनित लाइनों के लिए सीमा को सीमित करता है। अपने उदाहरण के लिए आप :s
स्वैप करने के लिए कमांड का उपयोग कर सकते हैं :
:'<,'>s/\(\w\+\), \(\w\+\)/\2, \1/
यह दृश्य चयन में प्रत्येक पंक्ति पर अल्पविराम द्वारा अलग किए गए दो शब्दों को स्वैप करेगा।
आप किसी अन्य बुकमार्क या लाइन स्थिति का उपयोग '<
और '>
पसंद भी कर सकते हैं , जैसे कि एक आंदोलन कमांड के हिस्से के रूप में, इसलिए सामान्य मोड d'<
में वर्तमान कर्सर स्थिति से दृश्य चयन में पहली पंक्ति की शुरुआत तक हटा दिया जाएगा। यदि ब्लॉक अब नेत्रहीन रूप से हाइलाइट नहीं किया गया है तब भी निशान प्रभावी रहते हैं।
यदि आप हर लाइन पर रिकॉर्ड किए गए मैक्रो को फिर से खेलना चाहते हैं, तो आपको :normal
कमांड के साथ मैक्रो को निष्पादित करना होगा । दुर्भाग्य से :normal
कमांड कई लाइनों पर काम नहीं करता है, लेकिन आप इसे :global
कमांड के साथ ठीक कर सकते हैं । यह :ex
प्रत्येक पंक्ति पर एक कमांड चलाता है जो रेगेक्स से मेल खाता है, इसलिए आप ऐसा कर सकते हैं:
:'<,'>g/^/ norm @a
स्पष्टीकरण:
:'<,'> for every line in the visual block
g/^/ on every line that matches the regex /^/ - i.e. every line
norm run in normal mode
@a the macro recorded in a