파일의 첫 번째 검색 결과로 어떻게 이동합니까?


9

vim에서 파일의 첫 번째 검색 결과로 이동하는 명령이 있습니까 (예 : 가장 낮은 행 번호를 가진 것)? 내가 그렇다면 파일 /foo의 첫 번째 인스턴스를 찾을 수 foo있습니까 (파일의 위치에서 시작하지 않고 파일의 시작에서 시작)?

답변:


14

ggn파일에서 검색의 첫 번째 인스턴스로 이동합니다. 파일 gg의 시작 부분과 n패턴의 다음 일치 항목으로 이동합니다.

gg2n파일의 두 번째 인스턴스 gg42n로 이동 하거나 42 번째 인스턴스로 이동하는 데 사용할 수도 있습니다 . 마찬가지로 G$N마지막 경기로 이동하거나 ( G마지막 줄로 이동하고, $그 줄의 끝 으로 이동하고 N, 뒤로 검색), G$2N두 번째로 이동하는 데 사용할 수 있습니다.


내가 찾아 G$N입력하는 것이 약간 어색. 대신 ggN이미 ggn첫 번째 결과를 냈고 마지막 결과를 치고 싶을 경우 그냥 수행하십시오 N.
mcanfield

당신이 뒤로 검색한다면 이것은 파일의 마지막 결과를 줄 것입니다 ... 이것은 말이 되겠지만 혼란 스러웠습니다.
JonnyRaa

8

승리에 대한 Ex 명령을 숨기십시오.

:ij[ump] foo  "jumps to first foo that is not in a comment
:ij[ump]! foo "jumps to first foo, comment or not

도 참조하십시오 :il[ist].


2
+1 그 입니다 모호한! 당신은 또한 :ij 2 foo두 번째 등으로 이동하는 데 사용할 수 있습니다
evilsoup

고마워요, 그 명령을 몰랐어요! 마지막 사건 에 도달하는 방법에 대한 아이디어가 있습니까?
Philipp Moers 2016 년

@PhilippMoers, :ilist마지막 항목을 수행 하고 선택하십시오.
romainl

고마워,하지만 그건 내가 원하는 게 아니야. 비 대화 형 키 바인딩을 사용하여 최신 검색어의 마지막 항목으로 즉시 이동합니다 (예 : G$N점프 목록을 오염시키지 않음). 첫 번째 발생에는가 nmap gö :ijump! 1 /<C-R>/<CR>있지만 마지막 발생에 대해 동일한 것을 파악할 수 없습니다.
Philipp Moers 2018 년

:ijump항상 다른 숫자를 사용하므로 원하는 것을 쉽게 얻을 수있는 방법이 없습니다. :ilist마지막 출력 을 얻기 위해 출력을 잡고 구문 분석 하는 함수로 시도해야합니다 .
romainl

4

사용 gg파일의 시작 부분으로 이동 명령을.

gg

/foo

2

gD 명령은 파일 맨 위에서 커서 아래에있는 단어를 검색합니다.

관련 gd 명령은 현재 c 유사 함수의 맨 위에서 검색합니다.


1

사용에 의존하는 방법 gg다음 중 하나를 통해 검색 /foo하거나 n대화 형 사용하기에 좋은, 그러나 때 빔의와 편집 일괄 -S인수 검색된 단어가 파일의 첫 번째 단어 인 경우가 작동하지 않습니다; 이 경우 커서는 두 번째 발생에 배치됩니다.

가장 안전한 방법은 ex 명령 :0/foo입니다. ex 명령으로 주소 만 발행하면 해당 주소로 이동하므로 :1212 행으로 이동합니다. ed / ex / Vim은 검색 패턴을 주소로 지원하므로 :/foo커서 위치 (처음에는 ".")에서 첫 번째로 일치합니다. :0/foo"제로 라인에서 첫 번째 'foo'"를 의미합니다.


1
슈퍼 유저에 오신 것을 환영합니다. 제안 된 명령에 대한 예제와 추가 설명을 포함하여 답변을보다 완벽하게 만들 수 있습니다. 기여해 주셔서 감사합니다.
Twisty Impersonator

0

커서가 파일에서 일치하는 항목 중 하나에있는 경우 다른 멋진 바로 가기 :

[<C-i>

(왼쪽 괄호 ([) 다음에 control-i)임을 분명히해야합니다.)

이것은 "*"명령을 사용하는 것과 같지만 커서 다음에 일치하는 것이 아니라 파일의 첫 번째 일치로 이동하는 것과 같습니다.

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