Thay thế để thoát dấu gạch chéo trong tìm kiếm và thay thế cho chuỗi dài


10

Có sự thay thế nào trong tìm kiếm vim và thay thế cho chuỗi, hơn là phải thoát mọi ký tự đặc biệt trong chuỗi.

Ví dụ: Nếu tôi muốn khớp chuỗi sau và thay thế bằng thứ gì đó

[ERROR] Login unsucessful

Sau đó tôi phải làm

:%s/\[ERROR\]\ Login\ unsucessful/something/g

Và nó trở nên xấu hơn và đau đớn hơn đối với các chuỗi phức tạp chứa nhiều ký tự đặc biệt

Tôi muốn làm một cái gì đó như

:%s/"[ERROR] Login unsucessful"/something/g

mà sẽ tránh tất cả thoát ra. Có tính năng nào như thế này không?

Câu trả lời:


16

Bạn có thể sử dụng công very-nomagictắc. Xem :h \Vđể biết chi tiết. Điều này sẽ cung cấp cho bạn %s/\V[ERROR] Login unsuccessful/something/g. Ngoài ra còn có công nomagictắc \M, đây là phiên bản nhẹ hơn \Vvà dường như không được sử dụng rộng rãi.

Cũng lưu ý rằng bạn không phải thoát khỏi không gian như trong ví dụ của mình, ngay cả khi không sử dụng \V.


Cảm ơn. Chính xác những gì tôi muốn. đã không nhận được điều này trên tìm kiếm google của tôi, dunno tại sao.
MohitC

2
@MohitC tôi bản đồ /để /\vđể kích hoạt "rất kỳ diệu" đối với hầu hết các tìm kiếm, vì vậy tôi đã ánh xạ //đến /để bắt đầu một tìm kiếm chưa sửa đổi (hữu dụng cho đi qua từ bổ nghĩa lịch sử tìm kiếm bỏ qua) và /v/để /\Vnhanh chóng tắt tất cả các phép thuật để tìm kiếm.
Kyle Strand

@MohitC Trên thực tế, thiết lập của tôi phức tạp hơn thế, bởi vì tôi cũng sử dụng một plugin để sử dụng "rất kỳ diệu" một cách nhất quán nhất có thể trong mọi bối cảnh. Xem câu trả lời của tôi ở đây .
Kyle Strand

7

Bạn không cần phải thoát khỏi không gian. Vậy đây:

:%s/\[ERROR\]\ Login\ unsucessful/something/g

nên thực sự là:

:%s/\[ERROR\] Login unsucessful/something/g

Và, tất nhiên, bạn có thể kích hoạt "chế độ" rất danh nghĩa để làm cho những ký tự đặc biệt đó trở nên ít đặc biệt hơn:

:%s/\V[ERROR] Login unsucessful/something/g

Xem :help /magic.


2

Ngoài các nomagic cờ đề cập đến trong câu trả lời khác.

Nó thường là trường hợp bạn không cần phải chính xác trong chuỗi tìm kiếm của bạn

Ví dụ, để phù hợp

[ERROR] Login unsucessful

Bạn có thể sử dụng biểu thức

.ERROR. Login unsucessful

Rõ ràng, bạn phải biết rằng dữ liệu của bạn sẽ không chứa các chuỗi khác, khác với mục tiêu dự định của bạn nhưng phù hợp với biểu thức.

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.