2012-12-22 48 views
10

Có phương pháp đối sánh nhiều từ cùng một lúc trong tìm kiếm và thay thế vim không? Một cái gì đó như:Phù hợp với foo hoặc bar vim regex

:%s/foo|bar//g 

để tìm kiếm foo hoặc bar và thay thế bằng gì (điều này tìm kiếm các mô hình foo|bar, mà không phải là những gì tôi muốn). Tôi có thể tìm kiếm nhiều ký tự theo cách này:

abcdef 
:%s/[ace]//g 

kết quả trong:

bdf 

Tôi có thể làm điều tương tự với các từ?

Tôi cũng biết tôi có thể làm điều này như thế này:

:%s/foo//g 
:%s/bar//g 

Tôi đang tìm kiếm một giải pháp một dòng, nếu một điều như vậy tồn tại.

Trả lời

18

Trong các quy tắc vim, toán tử thay thế cần phải được thoát bằng dấu gạch chéo ngược: sử dụng foo\|bar.

9

Thay vì thoát | với một dấu gạch chéo, bạn có thể sử dụng vim của "very magic" mode với \v trình tự:

:%s/\vfoo|bar//g 
Các vấn đề liên quan