수색…


수색

문자로 점프

f {char} - 같은 줄의 커서 오른쪽에있는 {char} 의 다음 항목으로 이동합니다.

F {char} - 같은 줄에 커서의 왼쪽에있는 {char} 의 다음 항목으로 이동합니다.

t {char} - 같은 줄의 커서 오른쪽에있는 {char} 의 다음 항목 왼쪽으로 이동합니다.

T {char} - 같은 줄에 커서의 왼쪽에있는 {char} 의 다음 항목 오른쪽으로 이동합니다.

를 통해 '결과'사이를 앞뒤로 건너 뜁니다 . 와,.

또한 /<searchterm> Enter 를 통해 전체 단어를 검색 할 수 있습니다.


문자열 검색

* - 커서 아래에서 단어의 다음 발생으로 이동

# - 커서 아래에서 이전 단어로 이동

/ searchterm Enter 는 다음 경기 (앞으로 검색)로 이동합니다. 당신이 사용한다면 ? / 대신 검색은 뒤로 이동합니다.

n (다음)과 N (이전)을 통해 경기간에 이동합니다.

보려면 / 이전 검색어를 입력 / 편집 및 위쪽 화살표 키를 누르십시오.

이 설정들도 :se : (참고 :se:set 과 동일합니다)

  • :se hls HighLightSearch는 모든 검색 일치를 강조 표시합니다. 사용 :noh 일시적으로 강조 검색 / 표시를 해제하기위한 ( :set noh:set nohls 꺼집니다.)
  • :se is 또는 :set incs turns Incremental 검색을 켜면 커서가 자동으로 다음 일치 항목으로 이동합니다. ( :se nois 는 꺼집니다.)
  • :se ic seic IgnoreCase는 대소 문자 구분을 해제합니다. ( :se noic 이 다시 켜집니다.)
  • :se scs IgnoreCase가 설정된 경우 SmartCaSe를 사용할 수 있습니다. 케이스 (in) 감도를 똑똑 하게 만듭니다! 예를 들어, /the 검색합니다 , , 등 동안 the The ThE /The 단지를 찾습니다 . The

기본 동작

비고

  • 모든 동작은 운영자 명령 다음에 사용할 수 있으므로 명령은 동작 범위에 포함 된 텍스트에 대해 작동합니다.
  • 연산자 명령과 마찬가지로 동작에는 개수가 포함될 수 있으므로 2w ords만큼 이동할 수 있습니다.

화살

Vim에서는 정상적인 화살표 / 커서 키 ( )가 예상대로 작동합니다. 그러나, 터치 typers 들어,가 H J K L의 대체 키를 사용하는 것이 더 쉽다. 일반적인 키보드의 경우 동일한 행에 서로 옆에 위치하며 오른손을 사용하여 쉽게 액세스 할 수 있습니다. 기억할 니모닉 기술은 다음 중 어느 것이지간에 기억합니다.

  • h / l - 키보드의 4 글자 중 "가장 왼쪽 / 오른쪽"에 위치하므로 "각각 왼쪽 / 오른쪽"과 같습니다.
  • j - 소문자 "j"는 꼬리가 작은 화살표와 같은 일반적인 문자 아래로 "아래로"이동하므로 "내려 가기"와 같습니다.
  • k - 반대로, 소문자 "k"는 "ascender"가 작은 포인터와 같은 일반적인 문자 위에 "올라"있습니다 - 따라서 "올라가는"것과 같습니다.

기본 동작

아래의 모든 명령은 정상 모드 에서 수행해야 합니다 .

명령 기술
h 또는 왼쪽 왼쪽으로 [count] 문자 이동
J 또는 아래로 아래에 [count] 자를 입력하십시오.
또는 K까지 위의 [count] 문자 이동
L 또는 오른쪽으로 오른쪽으로 [count] 문자 이동
gg 첫 번째 라인으로 가거나, [count] 번째 라인이 주어진다면
H 보이는 화면의 첫 번째 줄로 가라.
보이는 화면의 중간 선으로 가라.
보이는 화면의 마지막 줄로 가라.
마지막 줄로 가거나, [count] '줄이 있다면 주어진 줄
또는 0 줄의 첫 번째 문자로 이동
^ 행의 첫 번째 공백이 아닌 문자로 이동
+ 한 줄을 비어 있지 않은 첫 번째 문자로 이동하십시오.
- 한 줄을 비 공백 문자로 바꾼다.
$ 또는 줄 끝으로 가십시오 ( [count] 가 주어지면 [count - 1] 줄을 아래로 내립니다)
| [count] 번째 문자로 가거나 count 가 지정되지 않은 경우 줄의 시작 부분으로 이동하십시오.
f {char} 오른쪽에 포함 [카운트] {} 문자의 발생 번째 이동
F {char} 왼쪽에 포함 [카운트] {} 문자의 발생 번째 이동
t {char} 오른쪽 배타적 인 {char}[count] 번째 출현으로 이동하십시오.
T {char} 왼쪽 { 배타적 인 }{ count }{ count } 번째 출현으로 이동하십시오.
; 최신 f , t , F 또는 T 반복 [count] times
, 최신 f , t , F 또는 T 를 반대 방향으로 반복하십시오. [count] times
w 다음 단어의 시작 부분으로 이동
이전 단어의 시작 부분으로 이동
이자형 다음 단어의 끝으로 가라.
GE 이전 단어의 끝으로 가라.
% (), [], {} , /* */ 또는 #if, #ifdef, #else, #elif, #endif 와 같은 일치하는 쌍으로 이동하십시오.
{ } 이전 / 다음 단락
[{ ]} 블록 시작 / 끝
'{숯} 표시로 이동 ( m {char}으로 표시 )
<CB> <CF> 이전 / 다음 페이지
<CO> <CI> "점프리스트"로 되돌아 가거나 앞으로 나아가십시오 ( jumplist 기능이 필요 jumplist :help jumps 참조).

참고 : b , ew 는 기본적으로 문자, 숫자 및 밑줄로 간주합니다 ( iskeyword 설정으로 구성 할 수 있음). 이들 각각은 대문자로도 할 수 있으므로 공백이 아닌 모든 것을 건너 뛸 수 있습니다.

참고 : Vim은 연산자 이동 ( :help movement )과 점프 ( :help jumplist )의 두 가지 종류의 동작을 인식 :help jumplist . g ( gg , G , g, )로 실행 된 것과 같은 동작은 변경과 마찬가지로 점프로 간주됩니다. 변화는 위에서 언급 한 g,g; 를 통해 탐색 할 수있는 자신 만의 점성가를 얻습니다 g; (참조 :help changelist ). 점프는 Vim이 동작 명령으로 처리하지 않습니다.

행을 가로 질러 위 아래로 움직일 때 커서는 예상대로 열을 유지합니다. 새 줄이 너무 짧으면 커서가 새 줄 끝으로 이동합니다. C 럼이 행의 끝을 넘으면 행의 끝에 커서가 표시됩니다. 초기 열 번호는 텍스트를 편집하거나 명시 적으로 열을 이동하는 등의 작업을 수행 할 때까지 계속 유지됩니다.

한 줄의 길이가 화면의 너비를 초과하면 텍스트가 줄 바꿈됩니다 (기본 설정에서이 동작을 구성 할 수 있음). 파일 내의 줄이 아니라 화면에 표시된 줄을 따라 이동하려면 일반적인 명령 앞에 g 를 추가하십시오. 예를 들어, gj 는 파일의 같은 줄에 있더라도 커서를 현재 위치 한 줄 아래에 표시된 위치로 이동시킵니다.

패턴 검색

Vim은 파일을 검색 할 때 정규 표현식의 사용을 지원합니다.

검색을 수행한다는 것을 나타내는 문자는 / 입니다.

수행 할 수있는 가장 간단한 검색은 다음과 같습니다.

/if

이렇게하면 전체 파일에서 if 모든 인스턴스를 검색합니다. 그러나, 우리의 검색 if 단어의 발생과 일치하는 정규 표현식 실제로 if 즉 내부의 사람들을 포함하여.

예를 들어, 우리의 검색은 다음의 모든 단어가 우리의 검색과 일치한다고 말할 것입니다 : if , spiffy , endif 등.

복잡한 정규 표현식을 사용하여보다 복잡한 검색을 수행 할 수 있습니다.

우리의 수색은 :

/\<if\>

우리의 검색은 정확한 단어를 완전한 단어로만 반환 if . 위의 spiffyendif 단지, 검색에서 반환되지 않을 if .

범위를 사용할 수도 있습니다. 주어진 파일 :

hello1
hello2
hello3
hello4

"hello"다음에 1에서 3 사이의 숫자가 포함 된 행을 검색하려면 다음과 같이 말합니다.

/hello[1-3]

다른 예시:

/(?:\d*\.)?\d+

파일에있는 모든 정수 및 십진수를 찾습니다.

특정 단어의 시작 부분으로 이동

텍스트를 편집 할 때 일반적인 작업은 화면의 특정 단어로 이동하는 것입니다. 이 예에서는 updated 단어로 이동하는 방법을 탐색합니다. 예제 전반에 걸쳐 일관성을 유지하기 위해 우리는 단어의 첫 글자에 착륙하는 것을 목표로합니다.


중간 화면 점프
M $ B

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

이 방법은 3 개의 키 입력만으로 신속합니다. 그러나 단점은 매우 일반적이지 않다는 것입니다. 일반적으로 화면 중앙에 타겟 라인이 위치하지 않는 것이 일반적입니다. 그래도 덜 세분화 된 움직임을 만들 때 유용한 동작입니다.


카운트 사용하기
3j f u ; ;

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

언뜻보기에 키 스트로크 횟수가 많아 첫 번째 접근 방식에서 한 걸음 뒤로 물러 설 수 있습니다. 그러나 M 대신 여기에서 계수를 사용하기 때문에 더 유연합니다. relativenumber 가 활성화 된 경우 사용할 정확한 수를 빠르게 확인할 수 있습니다. 대상 단어로 이동하려면,와 함께 f 를 사용합니다 . 놀랍게도 효과적 일 수 있습니다 - 그리고 확실히 반복해서 w를 누르는 것보다 낫습니다. 당신이 목표물을 오버 슈트한다면 ; , 당신은 뒤로로 갈 수 있습니다.


명시 적 검색
/ 위로 n n 입력하십시오.

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

/ 을 통해 이동하는 것은 매우 강력 할 수 있습니다. 직접 입력하여 타겟 단어로 바로 이동할 수 있습니다. 여기서 우리는 우리의 단어와 유일하게 일치하는 희망의 처음 두 문자 만 입력합니다. 불행하게도, 다수의 일치가있다, 그러나 우리는 신속하게 N으로 다음 경기로 이동할 수 있습니다.


암시 적 검색
/ y 스페이스 입력 w

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

경우에 따라서는 목표에 직접 가려하지 말고 목표물 가까이 로 점프하는 것이 더 효율적일 수 있습니다. 여기서 우리는 표적 바로 옆에 드물게 발생하는 편지 y 가 있음을 관찰합니다. 길을 따라 다른 y 문자를 칠 기회를 줄이기 위해 검색어에 Space 를 추가 할 수 있습니다. 이것은 카운트 사용 예제에서와 같이 f {char} 에 큰 영향을 줄 수 있습니다.

마크를 사용하여 주위로 이동

마크는 북마크와 같습니다. 그들은 이미 찾은 장소를 찾을 수 있도록 도와줍니다.

TLDR

m{a-zA-Z} 로 일반 모드로 설정하고 '{a-zA-Z} (작은 따옴표) 또는 `{a-zA-Z} (역 따옴표)로 일반 모드 또는 시각 모드로 이동하십시오. 소문자는 버퍼 내의 기호를 나타내며 대문자와 숫자는 전역입니다. 현재 설정 한 표시는 :marks , 자세한 정보는 :help mark 참조하십시오.

마크를 설정하십시오.

Vim의 기본 도움말은 다음과 같습니다.

m{a-zA-Z}               Set mark {a-zA-Z} at cursor position (does not move
                        the cursor, this is not a motion command).

마크는 어떤 라인과 컬럼이 놓여 졌는지 추적 할 것입니다. 마크가 설정되었는지 또는 마크가 이전 값을 갖고 덮어 씌워 졌는지를 시각적으로 확인하지는 않습니다.

마크로 이동

Vim의 기본 도움말은 다음과 같습니다.

Jumping to a mark can be done in two ways:  
1. With ` (backtick):     The cursor is positioned at the specified location
                          and the motion is exclusive.
2. With ' (single quote): The cursor is positioned on the first non-blank
                          character in the line of the specified location and
                          the motion is linewise.

백틱은 열 위치를 사용하지만 작은 따옴표는 열 위치를 사용하지 않습니다. 차이가 있다면 원하는 경우 마크의 열 위치를 무시할 수 있습니다.

시각 모드에서 일반 모드 이외의 비전 역간 점프를 사용하여 마크를 기반으로 텍스트를 선택할 수 있습니다.

글로벌 마크

글로벌 마크 (대문자)는 파일간에 점프를 허용합니다. 즉, 예를 들어 Afoo.txt 설정된 다음 bar.txt (내 파일 시스템의 어느 위치에서든지)에 설정되어 있으면 A 점프하면 현재 버퍼가 foo.txt 로 바뀝니다. Vim은 변경 사항을 저장할지 묻습니다.

다른 파일의 마크로 점프하는 것은 움직임으로 간주 되지 않으며 시각적 선택 (다른 것들 중에서)은 버퍼 내의 마크로 점프하는 것과 같이 작동하지 않습니다.

이전 파일 (이 경우 bar.txt 로 돌아가려면 :b[uffer] # (즉 :b# 또는 :buffer# )를 사용하십시오.

노트 :

특별 표시

Vim이 자동으로 설정하는 특정 표시가 있습니다 (직접 덮어 쓸 수 있지만 필요하지는 않을 수도 있음).

예를 들면 (Vim의 도움을 받아 들임) :

`[` and `]`: jump to the first or last character of the previously changed or 
             yanked text.  {not in Vi}

`<` and `>`: jump to the first or last line (with `'`) or character (with 
             <code>`</code>) of the last selected Visual area in the current 
             buffer.  For block mode it may also be the last character in the 
             first line (to be able to define the block).  {not in Vi}.

Vim의 내장 도움말에서 더 많이 알 수 있습니다.

''  ``              To the position before the latest jump, or where the
                    last "m'" or "m`" command was given.  Not set when the
                    :keepjumps command modifier was used.
                    Also see restore-position.


'"  `"              To the cursor position when last exiting the current
                    buffer.  Defaults to the first character of the first
                    line.  See last-position-jump for how to use this
                    for each opened file.
                    Only one position is remembered per buffer, not one
                    for each window.  As long as the buffer is visible in
                    a window the position won't be changed.
                    {not in Vi}.

'.  `.              To the position where the last change was made.  The
                    position is at or near where the change started.
                    Sometimes a command is executed as several changes,
                    then the position can be near the end of what the
                    command changed.  For example when inserting a word,
                    the position will be on the last character.
                    {not in Vi}

'"  `"              To the cursor position when last exiting the current
                    buffer.  Defaults to the first character of the first
                    line.  See last-position-jump for how to use this
                    for each opened file.
                    Only one position is remembered per buffer, not one
                    for each window.  As long as the buffer is visible in
                    a window the position won't be changed.
                    {not in Vi}.

'^  `^              To the position where the cursor was the last time
                    when Insert mode was stopped.  This is used by the
                    gi command.  Not set when the :keepjumps command
                    modifier was used.  {not in Vi}

또한 문자 ( , ) , {} 는 일반 모드 명령과 동일한 위치로 점프하는 표시입니다. 즉, '} 은 (는) 정상 모드에서 같은 작업을 수행합니다 } .

특정 줄로 이동

콜론 번호가있는 특정 줄로 건너 뛰기. 파일의 첫 번째 줄로 이동하려면 다음을 사용하십시오.

:1

23 행으로 이동하려면

:23


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow