Câu trả lời:
Thêm cờ c (trong dấu nhắc lệnh vim):
:%s/old/new/gc
sẽ cung cấp cho bạn lời nhắc có / không tại mỗi lần xuất hiện của 'cũ'.
Trợ giúp tích hợp của Vim cung cấp thông tin hữu ích về các tùy chọn khả dụng sau khi thay thế bằng xác nhận đã được chọn. Sử dụng:
:h :s
Sau đó cuộn đến phần trên tùy chọn xác nhận. Ảnh chụp màn hình bên dưới:
Ví dụ, để thay thế điều này và tất cả các kết quả khớp còn lại, hãy sử dụng a
.
Mark Biek đã chỉ ra bằng cách sử dụng:
%s/old/new/gc
cho một tìm kiếm toàn cầu thay thế với xác nhận cho mỗi thay thế. Nhưng, tôi cũng thích xác minh tương tác rằng văn bản cũ sẽ khớp chính xác. Trước tiên tôi thực hiện tìm kiếm với biểu thức chính quy, sau đó tôi sử dụng lại mẫu đó:
/old.pattern.to.match
%s//replacement/gc
Các s//
sẽ sử dụng mô hình tìm kiếm cuối cùng.
Tôi nghĩ rằng bạn đang tìm kiếm c
, ví dụ s/abc/123/gc
, điều này sẽ khiến VIM xác nhận thay thế. Xem: trợ giúp: thay thế để biết thêm thông tin.
Tôi thường sử dụng lệnh find / thay thế / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Đó là của find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, và vân vân.
Đó là một nỗi đau cho sự thay thế lớn nhưng nó cho phép bạn chọn lọc bỏ qua một số sự cố cũ (bằng cách nhấn n
một lần nữa để tìm cái tiếp theo thay vì .
lặp lại thay thế).
<CR>
gì
Nếu văn bản thay thế của bạn cần thay đổi cho từng lần xuất hiện phù hợp (nghĩa là không chỉ đơn giản là chọn Có / Không để áp dụng thay thế số ít), bạn có thể sử dụng plugin Vim mà tôi đã gọi là tương tác thay thế .
Neovim hiện có một tính năng để xem trước sự thay thế:
Hình ảnh được lấy từ: https://medium.com/@eric.burel/stop-USE-open-source-5cb19baca44d Tài liệu về tính năng: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
tính năng tích hợp, rất tốt để biết! Cám ơn vì đã chia sẻ!