Chỉ định chức năng thay thế trong trình soạn thảo vi, khi thực hiện tìm kiếm và thay thế


1

Tôi muốn có chức năng thay thế mà kết quả sẽ được sử dụng để thay thế và nó phù hợp làm đầu vào.

Đây là một cái gì đó có sẵn trong một số ngôn ngữ (ví dụ Lua).

Chẳng hạn, hãy tưởng tượng tôi có một danh sách các trang trong một văn bản và tôi muốn thay thế chúng bằng các giá trị ping.


Bạn đã có thể viết một hàm và chỉ không biết cách sử dụng nó trong cú pháp tìm thay thế?
Jeff Bridgman

1
Gì? Bạn có thể cho chúng tôi một ví dụ về hành vi mong muốn?
romainl

Đọc lại câu hỏi của bạn, bạn đang tìm kiếm :help substitute() hoặc đơn giản :s/foo/bar?
romainl

Câu trả lời:


4

Bạn có thể biến mẫu thay thế của mình thành biểu thức bằng cách bắt đầu với \=, vì vậy bạn có thể gọi các hàm theo cách đó và chuyển đến khớp phụ của hàm đó với submatch() chức năng, ví dụ:

:%s/foo .*/\=Foo(submatch(0))/g

(Hãy nhớ rằng kết hợp phụ 0 luôn có nghĩa là toàn bộ mẫu phù hợp.)

Xem:

:help sub-replace-expression
:help submatch()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.