2012-03-01 23 views
7

cách gọi một hàm từ chuỗi thay thế trong vim? Khi tôi có:chức năng gọi vim trên một nhóm trong chuỗi thay thế

%s/regex/string/g và tôi muốn các nhóm như là đối số và thay thế bằng giá trị trả về của hàm:

%s/regex/call function(\1)/g nên nhóm # 1 sẽ là đối số của hàm, và giá trị trả về hàm sẽ thay thế tất cả các kết quả phù hợp trong bộ đệm.

có khả dụng không?

Trả lời

9

Để sử dụng một biểu vimscript bạn cần phải thêm \= để chuỗi thay thế của bạn:

%s/regex/\= function(submatch(1))/g 
+1

của nó không tốt, nó chỉ dán các '= function (1)' trong đó – microo8

+0

@ microo8 Cám ơn nhận xét của bạn. Tôi đã thêm lệnh 'submatch' bị thiếu để nhận' \ 1'. – jcollado

+0

Lưu ý xem '': h sub-replace-expression'' để biết thêm chi tiết. –

Các vấn đề liên quan