Vim : 어떻게 효율적으로 텍스트를 검색합니까?


30

vim에서 텍스트를 검색 할 때마다 찾고자 /하는 문자열을 입력 하십시오.

그러나 문자열이 긴 문자열이고 여러 번 수행하려는 /andthisreallylongstring경우 두 번 이상 입력 할 필요가 없도록하는 방법이 있습니까?


12
Vim Cheat Sheet 또는 Vim Tips 를 간략하게 숙독하는 것이 좋습니다. vim을 최대한 활용하는 다른 방법이 많이있을 수 있습니다.
RedGrittyBrick

팁 : Linux를위한 텍스트 편집기가있어 몇 주 동안 공부할 필요가 없습니다.
BlueRaja-대니 Pflughoeft

4
@BlueRaja : 에디터 전쟁에 좋은 곳인지 확실하지 않습니다. 또한 Windows 또는 Mac OS를위한 훌륭하고 사용자에게 친숙한 텍스트 편집기가 있기 때문에 OS 전쟁에도 적합합니다. 편집기로 효율적으로 작업하는 방법을 연구하면 기본 기능을 사용하는 것보다 결국 더 효율적일 것입니다.
Benoit

답변:


61

검색을 마친 후 "n"을 누르면 이전 동작 (검색)이 반복됩니다.


12
또한 N이전 결과로 이동합니다.
Jin

15
또한, 위쪽 화살표 타격 후 타격 /마지막 검색 용어를 기억합니다
bastibe

6
또한 q/모든 최근 검색어와 편집 가능한 창을 표시합니다.
UncleZeiv

7
또한, /Enter 키를 누르면 이전 검색이 반복됩니다. 때리고 ?Enter 키를 누르면 이전 검색이 거꾸로 반복됩니다.
Andy Lester

3
/Ctrl-F대안 인 q/즉 쉽게 니모닉 (CTRL-F 찾을 ==) 일 수있다. q와 마찬가지로 명령 모드에서도 작동합니다.
idbrii

34

검색 한 문자열이 커서 아래에 있으면 입력 *하여 앞으로 #검색 하거나 뒤로 검색 할 수 있습니다.


19

내가 보통 검색하는 방법은 다음과 같습니다.

  1. '/'를 누르십시오
  2. 검색어 입력
  3. 엔터 키를 치시오
  4. 검색 내에서 앞뒤로 탐색하려면 'n'및 'N'을 사용하십시오.

Vim은 검색 기록을 유지하므로 이전 검색이 필요하면 '/'를 누르고 UP 및 DOWN 키 또는 <Ctrl-P> <Ctrl-N>을 사용하여 검색 기록을 찾아 볼 수 있습니다.

'?'를 사용할 수도 있습니다. 뒤로 검색하려면 '/'대신.

나는 또한 사용하고 싶다 :

set ignorecase smartcase

이제 검색 문자열에 대문자가 있으면 대소 문자 구분 검색 만됩니다.


15

보다 효율적인 검색을위한 두 가지 추가 팁은 set hlsearchset incsearch입니다.

  • set hlsearch검색 결과가 강조 표시됩니다. :noh더 이상 필요 없을 때 끄려면 입력 하십시오.

  • set incsearch 증분 검색을 켭니다.

    에서 추출 :help incsearch

    검색 명령을 입력하는 동안 지금까지 입력 한 패턴이 일치하는 위치를 표시하십시오. 일치하는 문자열이 강조 표시됩니다. 패턴이 유효하지 않거나 찾을 수 없으면 아무것도 표시되지 않습니다. 화면은 자주 업데이트되며 빠른 터미널에서만 유용합니다.

    이 없으면 검색 키워드를 incsearch누른 후에 만 ​​결과가 표시됩니다 <CR>.

    예:

    검색하고 싶습니다 wildignore

    여기에 이미지 설명을 입력하십시오

    입력 /wild하면 첫 번째 경기가 자동으로 강조 표시됩니다.

    여기에 이미지 설명을 입력하십시오

    그런 다음 입력 i하고 다음 올바른 일치로 진행합니다.

    여기에 이미지 설명을 입력하십시오


13

아직 다루지 않은 또 다른 팁 : 문자 q를 누른 다음을 누르면 /이전 검색어 목록이 표시됩니다. 문서의 다른 줄처럼 편집 한 다음 Enter 키를 눌러 새 검색에 다시 사용할 수 있습니다.


3
이것을 찾고있었습니다. 이것은 중요한 메모이며 매우 주제입니다.
cincodenada

8

을 눌러 /검색을 시작한 후 위쪽 화살표를 사용하여 검색 기록을 스크롤 할 수 있습니다.

전체 검색어를 입력하지 않아도되도록 정규식을 입력 할 수 있습니다. and.*longstring


7

다음과 같은 인수없이 /를 누르는 것이 효과가 없습니까? 모든 시스템에서 검색이 마지막으로 수행 된 모든 작업을 반복합니다.


6

양손으로 된 텍스트검색하기 위해 따라갈 수있는 멋진 패턴이 있습니다 . 그런 다음 검색 이외의 방법으로 단어를 탐색 한 경우 단어 자체를 입력하지 않아도됩니다. 요약하면, 검색하려는 단어의 첫 문자 인 경우 :

v
e
y
/
Ctrl-r
0
Enter

(n 또는 N과 계속 일치)

그러나 *(또는 #)는 이러한 모든 명령과 거의 동일한 작업을 수행합니다. 유일한 차이점은 사용자가 지정한 단어의 양에 따라 융통성이있을 수 있다는 것입니다 (e 대신 단어 끝까지 원하는만큼 선택할 수 있습니다 (예 : 9l)).


1
  • /string — 문자열 검색
  • ?string — 문자열 검색
  • n — 문자열의 다음 인스턴스 검색
  • N — 문자열의 이전 인스턴스 검색

1

프로그래밍 할 때 많은 시간을 검색하고 싶습니다 aVeryLongVariableNameInTheProgram.

vim에서는 텍스트를 버퍼 / 레지스터에 매우 쉽게 넣을 수 있습니다.

  • 단어의 첫 문자에 커서 놓기
  • "BywaVeryLongVariableNameInTheProgram버퍼 B에 텍스트를 담 그려면 (좋아하는 것을 선택하십시오, 나는 B를 사용했습니다)
  • /^RB 검색 줄에 버퍼 B를 붙여 넣으려면 (슬래시, Ctrl-R, B)

물론 하나의 단어를 잡아 당기는 대신 줄 끝까지 yan 수도 있습니다. 위의 시퀀스를 항상 사용합니다.


1

또한 Ctrl+ R를 누른 다음 레지스터 이름 (예 : / Ctrl+ R0) 을 눌러 레지스터의 내용을 검색 프롬프트에 붙여 넣을 수 있습니다 Enter.


나는 당신에게 단어를 생각합니다.
dotancohen

0

변수 이름을 입력하는 긴 문자열입니까? 아니면 텍스트에 긴 문자열이 있습니까? 그런 다음 *커서 아래에서 단어 / 문자열을 검색하십시오.

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