특정 줄 번호 사이의 문자열을 어떻게 검색합니까?


15

이것은 최근에 발생한 문제입니다. 수백 줄의 텍스트 파일이 있습니다. 두 개의 특정 줄 번호 사이의 문자열을 어떻게 검색합니까? 예를 들어 줄 번호 100과 325 사이를 검색하고 싶습니다.

답변:


7
:100,235g/foo/#<CR>

그런 다음를 눌러 :147<CR>원하는 줄로 이동하십시오.

당신은 또한 사용할 수 있습니다 :ilist:

:100,235il foo<CR>

를 참조하십시오 :help range, :help :global하고 :help :ilist.


5

특정 줄을 검색하는 다른 방법이 있습니다.

/%>{linenumber}l\%<{linenumber}{pattern}

예:

/%>199l\%<300lgood

패턴 'good'에 대해 200 ~ 299 행을 검색합니다.

%>199l - l is for line, >199 denotes the lines greater than 199

2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>100에서 325까지의 선을 시각적으로 선택하고 normal모드로 돌아갑니다 .
  • /\v%Vpattern:h /\%V검색 범위를 마지막 시각적 영역으로 제한 하는 데 사용 합니다.

패턴에 개행이 포함 된 경우 \%V시각적 영역에서 패턴 끝을 제한 하려면 다른 줄을 추가해야합니다 .

100GV325G<esc>
/\v%Vpattern%V
  • :h /\%V

1

때로는 함수 / 방법 내에서 주어진 기호를 검색해야 할 때가 있습니다

  void f(bool b)
  {
    b;
    b;
  }

  void g(bool b)
  {
    b;  
    b;  
    b;  
    b;  
  }

위해서하는 것은 검색 할 수 b있는 f()전용 :

  • 이동 {f()
  • 시각 모드로 들어가다 V
  • f()'%' 로 끝남
  • ':'명령을 사용하여 실행 줄로 이동하십시오.
  • 일단 당신이 il b얻을 명령 줄 입력 에 :'<,'>il b

<CR>당신이 (입력) 후

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue

Vi와 Vim에 오신 것을 환영합니다 ! 이것이 romainl의 답변과 실질적으로 다른 점은 무엇입니까?
D. Ben Knoble

감사! 첫째, vim을 처음 접하고 익숙하지 않은 %비주얼 모드의 사람들이 유용하다고 생각합니다. 둘째, 선의 범위를 명시 적으로 입력 할 필요가 없습니다.
dmytro.poliarush

1
좋아, 그럼 사용법이 어떻게 관련되어 있고ilist
D. Ben Knoble의 핵심 요소 인
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.