Bạn có thể chạy vimgrep sau đó ghi lại một macro mà đi với từng ngành nghề trong đầu ra vimgrep và nào thay thế, một cái gì đó như thế này: (! Không gõ vào # comments)
:set autowrite #automatically save the file when we change buffers
:vimgrep /pattern/ ./**/files
qa #start recording macro in register a
:s/pattern/replace/g #replace on the current line
:cnext #go to next matching line
q #stop recording
[email protected] #repeat the macro 10000 times, or until stopped by
#an "error" such as reaching the end of the list
:set noautowrite
tôi đã không kiểm tra nó, do đó, nó có thể cần một chút tinh chỉnh - kiểm tra nó trên một số tập tin mà bạn không nhớ nhận được điều sai lầm đầu tiên.
Lợi thế của điều này trên sed là Vim regex mạnh hơn và bạn có thể thêm tùy chọn c vào: s để xác minh từng thay thế.
Chỉnh sửa: Tôi đã sửa đổi bài đăng gốc vì nó sai. Tôi đã sử dụng: 1vimgrep để tìm kết quả phù hợp đầu tiên trong mỗi tệp, nhưng tôi đã đọc sai tài liệu - nó chỉ tìm thấy một kết quả phù hợp trên tất cả các tệp.
Nguồn
2010-01-23 10:37:14
[Ở đây] (http: // stackoverflow.com/a/13944042/834176) là một cách để tìm kiếm và thay thế đệ quy, nhưng chỉ trên các tệp dưới sự kiểm soát phiên bản (nó có thể được tổng quát dễ dàng nếu bạn thực sự muốn tìm kiếm * tất cả * tệp trong thư mục). –