Vim에서“다음 찾기”


535

에 대해 Vim에서 앞으로 검색하려면을 cake입력 /cake하지만 return 키를 누르면 커서가 첫 번째 일치 항목으로 이동합니다. "다음 찾기"와 유사한 Vim 명령이 있습니까?


33
사용에 익숙해 지십시오 :help. :help /검색에 대한 도움말이 표시되며 질문에 대한 답변이 페이지 아래에 약간 나타납니다.
Chris Morgan

답변:


876

그것은는 n다음과 N이전을 위해.

그리고 대신에 ?(예를 들어 ?cake) 를 사용하여 역방향 검색을 사용하면 반대 /방향으로 진행됩니다.

시스템에 설치되어 있으면 vimtutor터미널에서 명령 을 실행 하여 기본 Vim 명령에 대한 자습서를 시작해야합니다.

롭 웰스 조언 에 대한 *과는 #매우 타당한.


1
색인 검색 플러그인 참조 vim.org/scripts/script.php?script_id=1682
SergioAraujo

현재 경기가 아닌 다음 경기로 넘어갈 수있는 방법이 있습니까?
user13107

@ user13107 : n과 N은 전체 버퍼 / 파일에서 작동합니다. 현재 줄로 제한되지 않습니다.
Xavier T.

@XavierT. 어떤 아이디어, 어떻게 검색에서 고정 된 수의 결과를 뛰어 넘을 수 있습니까? 예를 들어, 10 번째 매칭 라인
GP cyborg

@GPcyborg : n대부분의 vim 연산자와 마찬가지로 명령을 반복하기 위해 숫자를 접두사로 사용할 수 있습니다. 입력 10n하면 (초기 결과 이후) 10 번째 결과로 이동합니다. 또한 3j3 줄 아래로 내려가는 것처럼 모든 모션 연산자에 작동 합니다.
Xavier T.

210

Vim에서 가장 유용한 지름길은 IMHO *입니다.

커서를 단어 위에 놓고 *키를 누르면 해당 단어의 다음 인스턴스로 넘어갑니다.

#키는 동일한 작업을 수행하지만, 단어의 이전 인스턴스로 이동합니다.

진정으로 시간을 절약 할 수 있습니다.


6
그리고 경우에 그것은 분명하지 않았다, n그리고 N관통 앞뒤로 당신을 데려 갈 *당신을 누르면 일단 경기 *. (또는 계속 누르 *거나 #뒤로 가기 위해 계속 누를 수 있지만, Shift 키를 사용하는 것이 일반적으로 차선책입니다.)
Herbert Sitz

3
@Herbert, 실제로 n과 N은 "앞으로"와 "뒤로"를 대신하지 않습니다. @Xavier가 위에서 언급했듯이 n은 다음 이고 N은 이전 입니다. '/'키와 '?'중 하나를 사용하여 검색을 지정하면 정방향 및 역방향 검색을 제어 할 수 있습니다. 키 또는 '*'키와 '#'키를 사용하십시오.
Rob Wells

나는 그것이 유용하다고 생각하지 않습니다 ... 대부분의 경우 단어의 일부 (예 : 함수 이름의 일부)를 검색합니다. 나는 싶지 않아 /Func, 그것은 데려다가 SomeFunc의 다음 인스턴스로 이동하려면 '*'을 누른 다음을 누릅니다과 SomeFunc의 다음 인스턴스 때 Func입니다 SomeOtherFunc.
weberc2

더 나쁜 것은 C ++을 사용하면 /\<foo\>일치하지 않기 때문에 메소드 호출에서 메소드 구현으로 이동하지 않는다는 사실을 알았 습니다"className::foo()"
puk

84

내가 시작했을 때 나는 데모 필요가 있었다 .

Vim에서 검색하는 방법

  1. 유형 /
  2. 유형 검색어 ( 예 : "var")
  3. 프레스 enter
  4. 에 대한 다음 인스턴스를 누릅니다 n(대한 이전 N )

2
입력 *이 잘못되었습니다. 즉 파일 aa aaa입니다. 검색 /aa, 일치해야합니다. 첫 번째 경기에서을 누르면 *검색어가 변경됩니다.
Bernhard

1
n은 '다음'이 아니라 "마지막 검색 반복"입니다. ? var를 입력하면 'var'에 대한 현재 위치에서 위쪽으로 검색을 시작합니다. 그리고 'N'은 실제로 "마지막 검색을 반대 방향으로 반복"이므로이 예에서는 현재 위치에서 'var'을 아래쪽으로 검색합니다.
Rob Wells



13

논의한 바와 같이 몇 가지 검색 방법이 있습니다.

/pattern
?pattern
* (and g*, which I sometimes use in macros)
# (and g#)

플러스, 이전 /와 다음 탐색 Nn.

검색 프롬프트를 위로 끌어 올린 /다음 C-p/ 로 순환 하여 검색 기록을 편집 / 호출 할 수도 있습니다 C-n. 더 유용한 기능은 q/검색 기록을 탐색 할 수있는 창으로 이동합니다.

또한 중요한 것은 'hlsearch'(유효한 유형 :hls)입니다. 이를 통해 패턴의 여러 인스턴스를 훨씬 쉽게 찾을 수 있습니다. 다음과 같은 방법으로 경기를 더욱 밝게 만들고 싶을 수도 있습니다.

hi Search ctermfg=yellow ctermbg=red guifg=...

그러나 화면 전체에서 일정한 노란색 일치로 미쳐 갈 수 있습니다. 그래서 당신은 종종 자신을 사용하여 찾을 수 :noh있습니다. 매핑이 순서대로 진행되는 것은 매우 일반적입니다.

nmap <leader>z :noh<CR>

필자 는 강조 표시를 지우기 z위해 끊임없이 입력하는 /zz<CR>(빠른 유형의 일반적이지 않은 경우) 사용했던 것처럼 쉽게 기억합니다 . 그러나 :noh매핑이 더 좋습니다.


2
에서 영감을 받았다 q/면와 함께 플레이해야합니다 q:. 둘 다 정말 편리합니다! (
Micah Elliott

고마워 미카 나는 그것을 많이 사용하지 않지만 'q :'에 대해 이미 알고있었습니다. 그러나 vim 교육에서 'q /'가 완전히 누락되었으며 많은 도움이 될 것이라고 생각합니다.
Stabledog

2

"/ wordforsearch"와 같은 것을 누른 후 Ctrl+ Enter를 누르면 현재 줄에서 "wordforsearch"라는 단어를 찾을 수 있습니다. 그런 다음을 눌러 n다음 경기를보십시오. N이전 경기 를 위해를 누르십시오 .


1
"검색을 실행할 때 Vim은 현재 커서 위치에서 앞으로 검색하고 찾은 첫 번째 일치 항목을 중지합니다."Vim이 지적한대로.
베이스 척
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.