VIm에서 다음 밑줄까지 어떻게 변경합니까?


54

vim에이 텍스트가 있고 커서가 첫 번째 문자에있는 경우 :

www.foo.com

내가 할 수 있음을 안다.

  • cw 첫 번째 기간까지 변경하려면 word (소문자 w)는 구두점 또는 공백으로 끝납니다
  • cW 전체 주소를 변경하려면 Word (대문자 w)는 공백에서만 끝납니다

자, 만약 내가 이것을 가지고 있다면 :

stupid_method_name

이걸로 바꾸고 싶니?

awesome_method_name

양자 모두 cwcW 모든 것을 변경하지만, 단지 밑줄 앞에 단편을 바꾸고 싶습니다.

내 후퇴 기술은 c/_'검색에서 다음 밑줄을 치기 전까지는 변경'을 의미하지만 나에게도 모든 밑줄이 검색 용어로 강조 표시되기 때문에 약간 짜증납니다.

다음과 같은 지정자가 있습니까? w 또는 W 밑줄을 포함하지 않습니까?


무엇이 잘못 되었나요? :nohl?
Ignacio Vazquez-Abrams

나는 해야 할 것 대부분의 시간에 검색 용어를 강조하고 싶습니다. 운동으로 검색을 사용할 때가 아닙니다. (나는 또한이 질문을했다. 수퍼 유저 /questions/244042/... )
Nathan Long

답변:


76

넌 할 수있어 cf_. f는 검색된 문자를 강조 표시하지 않습니다.

너는 할 수있어. ct_ _을 포함시키지 않으려면.


15
당신은 f, t, F 및 T를 혼동합니다. f 캐릭터 앞으로 이동합니다. F 문자로 뒤로 이동합니다. t 캐릭터의 직전으로 이동합니다. 과 T 대상 문자의 오른쪽에있는 문자로 뒤로 이동합니다. 따라서 두 번째 예는 ct_.
garyjohn

2
이제 내 대답이 정정되었습니다. 죄송합니다. 감사합니다.
doubleface

4
ct_ 정확히 내가 원했던 것입니다. 이것은 이제 내 정규 워크 플로우의 일부가되었습니다. 감사!
Nathan Long

1
이것은 또한 믿을 수 없을만큼 확장 가능하고 따라서 강력합니다. 나는 당신이 f 또는 t 다음에 임의의 문자를 넣을 수 있다고 추측하고 다음 (또는 대문자를위한 prev) 발생으로 갈 것입니다. 감사.
Dom

1
Vim은 결코 실패 할 수 없으며, 능력있는 사람 만 이해합니다!
Benjamin R

59

.vimrc에 넣으십시오.

set iskeyword-=_

그러면 _이 단어 경계 (단어 경계가 아님)로 취급 될 것이고 cw는 단지 "멋진"을 변경하고 cW는 모든 것을 변경하는 데 사용될 수 있습니다.

만나다:

:help iskeyword

:help word

더 많은 정보를 위해서.


4
내 자신의 단어 경계를 정의 할 수 있다는 것을 알면 좋지만, 어떤 생각을 한 후에는 가장 좋은 해결책은 ct_ doubleface는 아래와 같이 말합니다. 간결하고 기본 vim 동작이기 때문입니다.
Nathan Long

이것은 내 개인 즐겨 찾기입니다.
Jay

2
나는 이것을 좋아하지만 php로 코딩 한 구문 색상을 깨뜨린다.
Aaron Surrain

1

낙타 운동 밑줄이나 낙타 표기법을 사용할 때 단어를 통해 이동할 수있는 매우 편리한 vim 플러그인입니다. 이 플러그인을 사용하면 밑줄이나 낙타 표기법으로 단어를 전체 단어로 취급 할 수있는 여러 가지 전통적인 vim 모션 명령 앞에 쉼표를 사용할 수 있습니다.

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