Bạn có thể sử dụng pydo
lệnh có sẵn kể từ Vim 7.4, hướng dẫn sử dụng mô tả cách thức hoạt động tốt hơn tôi có thể:
: [phạm vi] pydo {cơ thể}
Thực thi hàm Python "def _vim_pydo (line, linenr): {body}" cho từng dòng trong [phạm vi], với các đối số chức năng lần lượt được đặt thành văn bản của từng dòng, mà không có dấu <EOL> và hiện tại số dòng. Hàm sẽ trả về một chuỗi hoặc Không có. Nếu một chuỗi được trả về, nó sẽ trở thành văn bản của dòng trong lượt hiện tại. Mặc định cho [phạm vi] là toàn bộ tệp: "1, $".
Ví dụ của bạn, bạn có thể sử dụng một lệnh như:
:python import vim
:pydo vim.current.buffer[linenr - 1] = '[%s]' % line
Các linenr - 1
bit là có vì dòng trong vim.current.buffer
0-lập chỉ mục nhưng Vim bắt đầu đếm dòng từ 1.
Điều thú vị là bạn có thể dễ dàng xác định một lệnh tùy chỉnh để thực thi mã Python của mình trên một loạt các dòng:
command! -range=% BracketLines
\ <line1>,<line2>pydo vim.current.buffer[linenr - 1] = '[%s]' % line