Thay thế một chuỗi mà không thay đổi trường hợp?


18

Do một vấn đề khó hiểu trong ngôn ngữ dành riêng cho tên miền mà tôi đang làm việc, tôi thường xuyên phải đối mặt với nhiệm vụ (chọn lọc, không phải trên toàn cầu) thay thế termhoặc TERMbằng wordhoặc WORD, tương ứng.

Điều này có nghĩa, tôi tìm kiếm trường insensitively cho term, và muốn thay thế mà với word trong khi vẫn giữ chữ hoa / chữ thường của bản gốc termcòn nguyên vẹn .

Kể từ khi kiểm tra toàn bộ termcho phù hợp thượng / chữ thường sẽ rất khó và không phải là thực sự cần thiết, tôi sẽ giải quyết cho chữ hoa / chữ thường của word/ WORDđược quyết định vào chữ cái đầu tiên của term.

Làm thế nào tôi có thể đạt được điều này?


2
Lưu ý về "chọn lọc" cho những người không biết điều đó: Chỉ cần thêm cvào cuối câu lệnh thay thế bên dưới và Vim sẽ hỏi bạn về mọi trận đấu.
DevSolar

Câu trả lời:


16

Kho lưu trữ plugin của Michaels Geddes có tất cả những gì bạn cần:

:%SubstituteCase/\cterm/word/g

Các yếu tố cú pháp khác :substitutecũng được hỗ trợ.


5
Rực rỡ ... điều này sẽ tăng tốc đáng kể mọi thứ cho tôi. Tôi cũng nhận thấy rằng tôi không còn hỏi " điều này có thể được thực hiện không", mà chỉ " làm thế nào để làm điều đó". Có vẻ như cuối cùng tôi đã "đến" tại Vim. :-D
DevSolar

16

Điều này có thể được xử lý bởi các plugin:Subvert từ bỏ :

Một lần, tôi có một ứng dụng với một mô hình miền gọi là "cơ sở" cần được đổi tên thành "tòa nhà". Vì vậy, một tìm kiếm đơn giản và thay thế, phải không?

:%s/facility/building/g

Oh, nhưng các biến thể trường hợp!

:%s/Facility/Building/g
:%s/FACILITY/BUILDING/g

Đợi đã, số nhiều hơn "s" vì vậy chúng ta cũng cần phải có được điều đó!

:%s/facilities/buildings/g
:%s/Facilities/Buildings/g
:%s/FACILITIES/BUILDINGS/g

Abolish.vim có lưng của bạn. Một lệnh để thực hiện tất cả sáu và bạn có thể lặp lại với & quá!

:%Subvert/facilit{y,ies}/building{,s}/g

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.