대소 문자를 바꾸지 않고 문자열을 교체 하시겠습니까?


18

때문에 내가 작업하고있는 도메인 특정 언어의 특질에, 나는 자주 교체 (선택적이 아니라 전 세계적으로)하는 작업을 직면 term하거나 TERM함께 word또는 WORD각각.

즉, 대소 문자를 구분하지 않고 검색 하고 원본의 대문자 / 소문자를 그대로 유지하면서term 대체하고 싶습니다 .word term

전체를 점검 이후 term에 대한 일치 어려울 것 대문자 / 소문자 정말 필요하지 않습니다, 내가 대문자 정착 것 /의 소문자 word/ WORD의 첫 글자 결정되고 term.

어떻게하면 되나요?


2
모르는 사람들을위한 "선택적"에 대한 참고 사항 : c아래의 대체 문장 끝에 추가 하면 Vim이 모든 단일 경기에 대해 묻습니다.
DevSolar

답변:


16

Michaels Geddes의 플러그인 keepcase 에는 다음이 모두 필요합니다.

:%SubstituteCase/\cterm/word/g

의 다른 구문 요소 :substitute도 지원됩니다.


5
훌륭합니다 ... 이것은 나를 위해 속도 를 크게 올릴 것입니다. 또한 더 이상 " 이 작업을 수행 할 수 있습니다 " 아니라 " 어떻게해야하는지 "를 묻습니다 . 내가 Vim에 마침내 도착한 것 같습니다. :-D
DevSolar

16

이것은 abolish 플러그인:Subvert 에서 처리 할 수 ​​있습니다 .

한 번은 "빌드"로 이름을 바꿔야하는 "시설"이라는 도메인 모델을 가진 응용 프로그램을 가지고있었습니다. 간단한 검색과 교체가 맞습니까?

:%s/facility/building/g

아, 그러나 경우 변형!

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

잠깐, 복수는 "s"이상이므로 우리도 그것을 얻어야합니다!

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

Abolish.vim에 등이 있습니다. 6 가지를 모두 수행하는 하나의 명령이며 &로도 반복 할 수 있습니다!

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.