आप pydo
Vim 7.4 से उपलब्ध कमांड का उपयोग कर सकते हैं , मैनुअल वर्णन करता है कि यह मेरे से बेहतर काम कैसे कर सकता है:
: [श्रेणी] पीडो {शरीर}
पायथन फ़ंक्शन को "डिव्व__पीडो (लाइन, लाइनन्र): {बॉडी}" को [रेंज] में प्रत्येक लाइन के लिए फंक्शन की दलील के साथ, फंक्शन की दलीलों के साथ प्रत्येक लाइन के टेक्स्ट में सेट किया जाता है, बिना ट्रैस <EOL>, और करंट के। रेखा संख्या। फ़ंक्शन को एक स्ट्रिंग या कोई भी नहीं लौटना चाहिए। यदि एक स्ट्रिंग लौटा दी जाती है, तो यह वर्तमान मोड़ में लाइन का पाठ बन जाती है। [श्रेणी] के लिए डिफ़ॉल्ट पूरी फ़ाइल है: "1, $"।
अपने उदाहरण के लिए आप एक कमांड का उपयोग कर सकते हैं जैसे:
:python import vim
:pydo vim.current.buffer[linenr - 1] = '[%s]' % line
linenr - 1
बिट है क्योंकि में लाइनों vim.current.buffer
0 अनुक्रमित रहे हैं, लेकिन विम 1 से लाइनों गिनती करने के लिए शुरू करते हैं।
अच्छी बात यह है कि आप अपने पायथन कोड को कई लाइनों पर निष्पादित करने के लिए आसानी से एक कस्टम कमांड को परिभाषित कर सकते हैं:
command! -range=% BracketLines
\ <line1>,<line2>pydo vim.current.buffer[linenr - 1] = '[%s]' % line