Có nhiều hướng khác nhau để làm điều đó.
Bên trong thư mục hiện tại
Nếu bạn muốn thực hiện tìm kiếm / thay thế trong cây dự án, bạn có thể sử dụng danh sách đối số của Vim .
Đơn giản chỉ cần mở Vim và sau đó sử dụng :args
lệnh để điền danh sách đối số. Bạn có thể vượt qua trong nhiều tên tập tin hoặc thậm chí là ảm đạm.
Ví dụ, :args **/*.rb
sẽ tìm kiếm đệ quy thư mục hiện tại cho các tệp ruby. Lưu ý rằng điều này cũng giống như mở Vim với vim **/*.rb
. Bạn thậm chí có thể sử dụng find
lệnh của shell để lấy danh sách tất cả các tệp trong thư mục hiện tại bằng cách chạy:
:args `find . -type f`
Bạn có thể xem danh sách args hiện tại bằng :args
cách tự chạy . Nếu bạn muốn thêm hoặc xóa các tập tin khỏi danh sách, bạn có thể sử dụng :argadd
các :argdelete
lệnh tương ứng.
Khi bạn hài lòng với danh sách, bây giờ bạn có thể sử dụng :argdo
lệnh mạnh mẽ của Vim để chạy lệnh cho mọi tệp trong danh sách đối số::argdo %s/search/replace/g
Dưới đây là một số mẹo để tìm kiếm (dựa trên một số ý kiến):
- Sử dụng một ranh giới từ nếu bạn muốn tìm kiếm "foo" nhưng không phải "foo_bar". Sử dụng
\<
và các \>
cấu trúc xung quanh mẫu tìm kiếm như vậy::argdo %s/\<search\>/foobar/g
- Sử dụng
/c
cờ tìm kiếm nếu bạn muốn Vim yêu cầu xác nhận trước khi thay thế cụm từ tìm kiếm.
- Sử dụng
/e
cờ tìm kiếm nếu bạn muốn bỏ qua các lỗi "không tìm thấy mẫu".
- Bạn cũng có thể chọn lưu tệp sau khi thực hiện tìm kiếm :
:argdo %s/search/replace/g | update
. Ở đây, :update
được sử dụng bởi vì nó sẽ chỉ lưu tệp nếu nó đã thay đổi.
Mở bộ đệm
Nếu bạn đã mở bộ đệm, bạn muốn thực hiện tìm kiếm / thay thế, bạn có thể sử dụng :bufdo
, nó chạy một lệnh cho mọi tệp trong danh sách bộ đệm của bạn ( :ls
).
Lệnh này rất giống với :argdo
: :bufdo %s/search/replace/g
Tương tự :argdo
và :bufdo
, có :windo
và :tabdo
hành động tương ứng trên các cửa sổ và tab. Chúng ít được sử dụng nhưng vẫn hữu ích để biết.
/c
cờ để xác nhận thay thế.