Vim : 비주얼 모드에서 텍스트 블록을 빠르게 선택하는 방법


190

나는 vim을 꽤 오랫동안 사용 해 왔으며 시각적 모드에서 텍스트 블록을 선택하는 것이 SHIFT+ 만큼 간단 V하고 화살표 키를 텍스트 블록의 끝에 도달 할 때까지 한 줄씩 위 또는 아래로 이동한다는 것을 알고 있습니다 선택하고 싶다.

내 질문은-시각적 모드에서 텍스트 블록을 선택하는 더 빠른 방법이 있습니까? 예를 들어 SHIFT+를 V누른 다음 선택을 중지 할 줄 번호를 지정합니까? ( :35예를 들어, 35는 내가 선택하고자하는 줄 번호입니다-이것은 분명히 작동하지 않으므로 내 질문은 이와 비슷한 것을 수행 할 수 있는지 찾는 것입니다 ...)


3
+1 이런 질문을 자주하면서 좋은 질문입니다. 아마이 장소 사용하여 시작되지 않은 경우 궁금 v%하거나 v/pattern또는 뭔가 다른?
user786653

9
vip select inner 단락 대 내부 문장을 선택합니다.
SergioAraujo

27
V35G시각적으로, 또한 라인 (35)에 전류 선을 선택할 것이다 V10j또는 V10k시각적 다음 또는 이전의 10 개 행을 선택한다
스테판

1
@Stephan, 그것이 내가 찾던 것입니다. 감사!!
shriek February

선 선택을 위해 바로 가기를 사용 nnoremap <Space> V합니다. 비주얼 라인 모드에서 마우스로 마우스 오른쪽 버튼을 클릭하여 선택을 정의하십시오 (적어도 Linux에서는 그렇게합니다). 어쨌든 키보드보다 효과적입니다.
Mikhail V

답변:


212

다른 사람들이 말한 것 외에도 패턴 검색을 사용하여 선택을 확장 할 수 있습니다.

예를 들어 v/foo현재 위치에서 다음 "foo"인스턴스로 선택합니다. 예를 들어 35 행에서 "foo" 의 다음 인스턴스로 실제로 확장하려면 n을 눌러 선택을 다음 인스턴스로 확장하십시오.

최신 정보

자주하지는 않지만 일부 사람들은 시각적으로 선택하기 위해 마크를 광범위하게 사용한다는 것을 알고 있습니다. 예를 들어, 5 행에 있고 35 행을 선택하려면을 눌러 5 행에 ma마크 a를 놓은 다음 :3535 행으로 이동합니다. Shift+ v선별 시각 모드로 들어가기 위해 마지막 `a으로 다시 마크로 선택 a.


21
패턴을 포함해야하는 경우 사용할 수 있습니다 v/foo/e. 는 e일치하는 패턴의 "끝"을 의미합니다.
Peter Rincker

6
V / foo / + 5 또는 V / foo / -5 오프셋을 사용하여 해당 줄에서 수정할 수 있습니다 (저는 저자와 같은 선별 시각적 모드를 사용하고 있습니다).
bheeshmar

검색과 일치하는 텍스트 범위를 선택하려면 어떻게해야합니까? 즉 : 검색어를 찾아서 선택 (전체 단어) 하시겠습니까?
Daniel Park

5
@DanielPark 현재 단어를 선택하려면을 사용하십시오 v i w. 현재 연속 된 비 공백을 선택하려면 v i Shift+를 사용하십시오 w. 캐럿이있을 때 차이점은 MyCla|ss.Method첫 번째 콤보가 선택 MyClass하고 두 번째가 전체를 선택한다는 것입니다.
Jay

1
감사. 또한 사용 v i w s하면 "바꾸기"작업을 효과적으로 수행 할 수 있습니다.
Daniel Park

113
G                       Goto line [count], default last line, on the first
                        non-blank character linewise.  If 'startofline' not
                        set, keep the same column.
                        G is a one of jump-motions.

V35G는 원하는 것을 달성합니다


89

Vim은 언어입니다. Vim을 실제로 이해하려면 언어를 알아야합니다. 많은 명령은 동사이며 vim에는 객체와 전치사가 있습니다.

V100G
V100gg

이것은 "100 행까지의 현재 행을 선택하십시오"를 의미합니다.

텍스트 객체는 많은 힘이있는 곳입니다. 전치사와 함께 더 많은 객체를 소개합니다.

Vap

이것은 "현재 단락을 선택하십시오"를 의미합니다. 즉, 현재 단락과 그 뒤에 나오는 빈 줄을 선택합니다.

V2ap

이것은 "현재 단락과 다음 단락 중에서 선택"을 의미합니다.

}V-2ap

이는 "현재 단락의 끝으로 이동 한 다음 시각적으로 해당 단락과 이전 단락을 선택합니다"를 의미합니다.

Vim을 언어로 이해하면 최상의 마일리지를 얻는 데 도움이됩니다.

아래로 선택하면 다른 명령과 결합 할 수 있습니다.

Vapd

위의 명령을 사용하면 단락을 선택하고 삭제할 수 있습니다. 변경 dA와는 y복사 또는으로 c변경하거나에 p이상 붙여 넣습니다.

이러한 모든 명령이 함께 작동하는 방식을 익히면 시각적으로 아무것도 선택할 필요가 없습니다. 단락을 시각적으로 선택한 다음 삭제하는 대신 dap명령을 사용하여 단락을 삭제할 수 있습니다 .


} V-2ap -2를 사용하는 것이 정말 똑똑합니다.
Ambareesh

40

v35G 커서에서 35 행까지 모든 것을 선택합니다.

v선택 모드로 전환 35하고 G이동 하려는 행 번호를 지정합니다 .

v}다음 단락의 시작 부분까지 모든 것을 선택할 수 있습니다 .



9

Shift+V n j 또는 Shift+V n k

현재 줄과 다음 / 이전 n줄을 선택합니다 . 나는 그것이 매우 유용하다고 생각합니다.


이것은 내가 찾던 간단한 방법입니다. 감사합니다
Arsal


6

v%

전체 블록을 선택합니다.

함께 플레이 :

v}, vp, vs, 등

도움말 참조 :

:help text-objects

여기에는 글자, 단어, 문장, 단락, 블록 등을 선택하는 다양한 방법이 나열되어 있습니다.



4

커서가 현재 위치한 곳에 괄호로 vi}둘러싸인 블록을 선택하려면 누릅니다 {}.

해당 블록 내부의 위치는 중요하지 않습니다 (가장 바깥쪽에 있는지 확인하십시오). 또한 또는 {같은 쌍이있는 항목으로 변경할 수 있습니다 .)]


3

항상 선행 숫자를 사용하여 작업을 반복 할 수 있습니다.

  • 시각 모드에서 입력 35하면 커서가 35 번 아래로 이동하여 다음 35 줄을 선택합니다.
  • 일반 모드에서 :
    • 35 줄 삭제 35dd
    • 붙여 넣기 35 회 35p
    • 변경 사항 35 개 실행 취소 35u
    • 기타

3

간단하게 누르면 Shift v line number gg

예 : 41 행에서 현재 행까지 Shift v 41 gg


1

}는 커서를 다음 단락으로 이동하는 것을 의미합니다. 따라서 v}전체 단락을 선택 하는 데 사용 하십시오.


0

시각적으로 모두 선택하려면 : Esc를 입력하여 yor이 정상 모드인지 확인하십시오.

:0 

파일의 시작 부분으로 이동하려면 ENTER를 입력하십시오

vG

당신은 사용할 수 있습니다 gg또한 첫 번째 줄에 가서 정상 모드에서.
huangzonghao

0

알아두면 편리 할 수 ​​있습니다.

예를 들어, 같은 양의 행을 선택하려면 블록 단위 또는 행 단위 1v 로 사용할 수 있도록 일부 수정을 수행해야합니다 1v.

오늘 나는 여기 에서이 놀라운 팁을 보았습니다 .

 :5mark < | 10mark > | normal gvV
 :5mark < | 10mark > | normal gv

비주얼 블록 경계를 재설정 할 수도 있습니다.

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point

0

들여 쓰기 모드에서 접기로 이것을 사용합니다 :

v 블록의 어느 곳에서나 비주얼 모드 열기

zaza 너무 두 번 울다

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