비주얼 모드 선택을 어떻게 재사용합니까?


163

코드를 편집 할 때 비주얼 모드에서 블록을 선택하고 블록을 검색하고 바꿉니다. 그러나 변경 한 후에는 시각적 모드가 종료됩니다. 동일한 선택에서 새로운 찾기 및 바꾸기를 어떻게 수행합니까?


글쎄, 한 가지 방법을 찾았지만 약간 성가시다 : : '<,'> s / old / new / g '<,'>을 입력하지 않고이 작업을 수행 할 수있는 방법은 무엇입니까?
미로

답변:


243

을 사용하여 마지막으로 선택한 시각적 영역을 다시 선택할 수 있습니다 gv.


4
대박! @ Heptite 혼자서이 명령을 찾는 방법은 무엇입니까?
skywinder

6
@skywinder : help gv
Heptite

4
@ Heptite : 여기에 뺨이 있는지 확실하지 않지만 그 명령은 : gv가 일단 알고 있으면 무엇을하는지 보여줍니다. 하지만 내가 하지 않으면 어떻게됩니까? 한 사람에게 물고기와 그 모든 것을 가르치십시오.
벤 툴

@ BenThul : 나는 그 질문을 오해 한 것 같습니다. " :help"로 시작하여 시간이 지남에 따라 많은 문서를 읽음으로써 Vim의 많은 기능에 대해 알고 있습니다.
Heptite

2
:help select-visualvim @skywinder 내부의 올바른 매뉴얼로 안내해야합니다.

14

gv 가장 빠른 방법 (마지막 선택 사용)이지만 안정적으로 저장된 선택 영역 (또는 여러 영역)을 원할 경우 항상 매크로를 만들 수 있습니다.

25-35 행의 현재 방법을 선택하여 저장하고 싶다고합시다. 입력하여 전체 방법을 선택하는 매크로를 만들 수 있습니다

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording

그런 다음 @a(레지스터 a에서 매크로 실행) 을 입력하여 해당 선택을 다시 가져올 수 있습니다 . 원하는 레지스터, 라인 또는 라인 섹션으로 반복하십시오. 파일을 변경하면 선택 항목도 변경 될 수 있으므로 "하드 코딩"줄 번호 대신 표시를 사용하는 것이 좋습니다.


줄 번호를 알아야한다는 것을 입력하십시오. 나는 두 개의 마크를 정의한 다음 'a,'b를 사용하여 그 사이의 범위에서 작동하는 것이 더 좋다고 생각합니다 (또는 라인 내에서 세분성을 원하면 '를 백틱으로 대체하십시오)
sillyMunky

예, 줄 번호가 바보였습니다. 방금 선택 매크로를 만드는 방법의 예로 사용했습니다. 그럼에도 불구하고 다양한 마크를 사용하는 것은 흥미로운 아이디어입니다.
AlexMA

6

gv마지막 선택을 복구하는 데 효과적입니다. 그러나 때때로 조금 더 필요합니다.

더 지속적인 레코드가 필요하다면 현재 GitHub에서 작업중인 이 플러그인 을 살펴보십시오 .

VisualMarks를 사용하면 파일에서 특정 위치를 저장하고 표시하는 것처럼 시각적으로 선택된 영역을 저장하고 복원 할 수 있습니다 m. 설치 후 기본 옵션으로 다음을 사용하십시오.

ma

시각 모드에서 현재 선택 항목을 표시하도록 저장 a한 다음

<a

이 모드로 돌아가려면 일반 모드에서


와우, 정말 멋지다. 해당 플러그인을 사용해보십시오! 그건 그렇고, 이러한 VisualMark는 마크가있는 것처럼 mkview로 유지할 수 있습니까?
미로

@labyrinth 몰라요 mkview.. 마크가 별도의 파일에 저장되어 있기 때문에 라고 생각 합니다 . 어쨌든 시도해 볼 것을 권합니다 :) 원하는대로 지속되지 않으면 기능을 기쁘게 생각합니다 GitHub에 요청 하고 처리하십시오.
iago-lito

1

Goodbye를 Hello로 바꾸려고했고 아래 코드를 선택했다고 가정 해 봅시다.

public static void main(String[] args){
    System.out.println("Goodbye World");
}

나는 입력 :s/Goodbye/Hello/하고 vim은 모든 인스턴스 GoodbyeHello

그것은 단순히 vim의 정규 표현식과 시각적 모드 선택의 조합입니다. 선택하면 자동 완성되어야합니다'<,'>


1
미안, 그건 내가 요구 한 게 아니야 내가 묻는 것은 이전에 선택한 것과 동일한 범위에서 다른 찾기 및 바꾸기를 수행하기 위해 선택을 어떻게 재사용합니까?
미로

1
교체 후 시각 모드에서 벗어날 수 있습니다. 입력 gv하면 시각 모드가 이전 선택 상태로 돌아갑니다.
Scott Nguyen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.