लाइनों का चयन करें फिर :कमांड मोड दर्ज करने के लिए दबाएं । विम स्वचालित रूप से भर जाएगा '<,'>, जो चयनित लाइनों के लिए सीमा को सीमित करता है। अपने उदाहरण के लिए आप :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