Vim에서 선택 항목 검색


107

C ++를 작성할 때 Visual Studio 용 vim 및 vim 플러그인을 사용합니다. 종종 함수 내에서 문자열을 검색하고 싶습니다 (예 : object->public_member.memberfunc().

나는 정력 이벤트를 누르면, 하나의 단어를 검색 할 수있는 편리한 방법을 알고 *#, 또한 유비쿼터스 슬래시 사용하여 입력 된 문자열을 검색 할 수 있습니다 /명령을 사용합니다. 위와 같이 긴 문자열의 모든 인스턴스를 검색하려고 할 때 /.

선택을 검색하는 방법이 있습니까? 예를 들어로 강조 표시 v한 다음로 복사하면 ? y뒤에 붙여 넣을 수있는 방법이 /있습니까? 더 쉬운 지름길이 있습니까?


답변:


154

Vim 팁 확인 : 시각적으로 선택된 텍스트 검색

또는 단순히 y로 선택한 텍스트를 잡아 당기고 검색 모드 / 로 이동 한 다음 Ctrl + R 0을 사용하여 마지막으로 잡아 당긴 텍스트를 붙여 넣을 수 있습니다.


4
@CMS. 감사. 좋은 팁! : reg를 사용하여 레지스터에 무엇이 있는지 확인한 다음 cntl-R N을 사용하여 레지스터 N에있는 것을 얻는 것은 훌륭합니다!
Rob Wells

85

대답

  1. 검색하려는 텍스트를 Yank
  2. q/p
  3. Enter

설명

q//명령 모드에 있다는 점을 제외하면 바닐라 검색과 유사하게 작동 하므로 p실제로 문자를 입력하는 대신 "붙여 넣기"를 수행합니다 p. 따라서 위는 검색중인 텍스트를 복사하여 검색에 붙여 넣습니다.

자세한 내용은 유형 :help q/


4
나는 <ctrl-r>을 입력하는 것이 너무 불편하기 때문에 이것을 좋아합니다.
1

우수한! 에서 emacs를 사용 evil-mode하면 실제로 작동하지만 수락 된 대답은 비참하게 깨집니다 (아마 Ctrl키 사용 때문에 ).
eestrada

2
간단한 문자열에 적합하지만 이 다른 답변의 주석 에서 언급했듯이 정규식 특수 문자를 이스케이프하지 않습니다 .
Bluu

1
그리고 당신은 그것을 잡아 당길 필요조차 없습니다. 시각에 그것을 선택 q/gvp, 어디 gv... 마지막으로 시각적 인 선택 범위를 의미

1
@nwildner, q/gvp나를 위해 작동하지 않습니다. 당신의 제안을 명확히 할 수 있습니까?
bam

38

사용 Q / 대신의 / . (와 동일 Q : ). 이제 명령 및 검색 기록을 통해 VIM 편집이 가능합니다! (언젠가 Ctrl-N 및 Ctrl-P를 시도하십시오).


10

나는 (훌륭한 책 Practical Vim을 통해 ) 그것에 대한 플러그인이 있다는 것을 방금 배웠습니다 . 플러그인은 GitHub에서 찾을 수 있습니다 .

플러그인을 사용하면 *및 로 시각적 선택을 검색 할 수 있습니다 #.


5
다른 답변은 이스케이프를 수행하지 않습니다. 이러한 방법을 사용하면 현재 magic설정 에 따라 선택한 메타 문자가 문자 그대로 검색되지 않습니다 . 이로 인해 균형 조정이 필요한 메타 문자에 대한 검색이 실패 할 수도 있습니다. 여기에 언급 된 플러그인은 선택한 텍스트를 검색하기 전에 이스케이프를 수행합니다.
Kurt Hutchinson

1
그것은 작동하지만, 불행하게도, 당신은 사용할 수 없습니다 n코리의와 CMS의 접근을 허용 할 때, 다음 FOUND 항목으로 이동합니다 ..
Ayrat

2

실제로 시각적으로 텍스트를 선택하고 * 및 #을 눌러 다음 항목을 검색 할 수 있습니다 ... 동일하게 작동하지만 유일한주의 사항은 다음과 같습니다.

선택 영역의 공백은 검색 할 때 모든 공백과 일치합니다 ( "hello world"를 검색하면 줄 끝에서 "hello"도 찾고 다음 줄의 시작 부분에 "world"가 있음).

http://vim.wikia.com/wiki/Search_for_visually_selected_text


2
나를 위해 시각적으로 텍스트를 선택한 다음 *를 누르면 시각적 선택이 확장됩니다.
martin jakubik 2014 년

페이지에서 매핑을 vimrc에 입력하지 않으면 기본적으로 할 수 없습니다.
Ayrat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.