다른 줄에서 다른 길이의 텍스트를 선택하는 방법은 무엇입니까?


10

다음과 같은 텍스트가 있다고 가정합니다.

aaa-dd-e : "aaa",
bb-x : "bb",
c-9 : "c"

아래와 같이 선택하고 싶습니다 :

aaa-dd-e:"aaa",
bb-x:"bb",
c-9:"c"

cv를 사용하여 시각적 블록을 만들려고 시도했지만 첫 번째 열에서 선택을 만들고 "f :"를 누릅니다 (위와 같이 모든 줄에서 콜론 표시로 선택 영역을 확장해야 함).

aaa-dd-e : "aaa",
bb-x: "bb",
c-9:"c"

선택은 첫 번째 콜론에서 멈추고 직사각형을 만듭니다.


6
그 선택으로 무엇을 성취하고 싶습니까? 다른 방법이있을 수도 있습니다
Arjen Dijkstra

문자로 구분 된 경우 먼저 블록을 다시 정렬 한 다음 선택하십시오. 참조 : VIM의 첫 번째 구분자에만 텍스트 정렬
kenorb

답변:


6

선택은 일반적으로 끝까지의 평균이며, Vim에서는 선택이 종종 필요하지 않은 Vim에서 더 그렇습니다.

JSON이 아닌 파일에서 속성 이름을 따옴표로 묶어 적절한 JSON으로 바꾸려고한다고 가정합니다.

  1. 수정할 줄을 문자 또는 줄로 선택하십시오. 중요하지 않습니다.
  2. :'<,'>norm I"^[f:i"( '<,'>자동으로 삽입되어으로 ^[획득 <C-v><Esc>)

아름다운 서라운드 플러그인이있는 경우 2 단계는 다음과 같습니다.

:'<,'>norm ^vt:S"

대체를 통해 2 단계는 다음이 될 수 있습니다.

:'<,'>s/^\s*\([^:]*\):/"\1"

여러분은 옳습니다. 이제 시각적 선택이 불필요하다는 것을 알았습니다. 도움으로 또는 :g/regex/norm내가 원하는 것을 간단히 달성 할 수 있습니다.
Aaron Shen

선택한 전체 블록을 시스템 클립 보드에 넣고 다른 파일에 붙여 넣을 수있는 방법이 있습니까?
Aaron Shen

물론이야. 당신의 빔을 가정하면 당신이 할 수있는 클립 보드 지원으로 컴파일 "+y또는 "*y에 따라, 당신은 대상에 원하는 클립 보드. 여기에는 많은 관련 질문이 있습니다.
romainl

14

Vim은을 누를 때 오른쪽 가장자리가 들쭉날쭉 한 것을 제외하고 사각형의 블록 단위 선택 만 지원합니다 $.

이 (같은 플러그인입니다 정력 여러 커서 복수의 선택을 에뮬레이션 할 수 있습니다),하지만 당신은 예를 들어, 순수 빔 명령으로 실제 목표를 (당신은 불행하게도 언급하지 않았다) 달성 할 수 있어야 :global하고 :substitute(정기적를 수립 할 수있는 경우 각 줄의 선택 항목과 일치하는 표현식) 또는 매크로 반복 (각 줄의 선택 항목을 다루는 특정 동작이있는 경우)


해당 줄을 잘라 다른 버퍼에 붙여 넣으려면 어떻게해야합니까?
Aaron Shen

1

링에 다른 모자를 꽂기 만하면 시각적 선택을 사용하려면 플러그인을 사용 하여 콜론을 정렬 한 다음 시각적으로 선택할 수 있습니다.

원본 텍스트를 가져 오는 경우 :

aaa-dd-e: "aaa",
bb-x: "bb",
c-9: "c"

:Tab /:\zs 아래와 같이 콜론 다음에 모든 것을 정렬합니다.

aaa-dd-e:  "aaa",
bb-x:      "bb",
c-9:       "c"

그런 다음 시각적 블록을 선택할 수 있습니다.

그러나 다른 사람들이 말했듯 이이 상황에서는 시각적 선택이 필요하지 않을 수 있습니다. norm시각적으로 선택하지 않아도 원하는 것을 사용 하거나 대체 할 수 있습니다.


1

놀랍게도이 문제에 대한 해결책을 찾았습니다! 복사하려는 텍스트 선택의 맨 아래에서 시각적 블록 모드를 시작하고 위로 선택하십시오! 올라가면 블록이 확장되지만 아래쪽으로 강조 표시하면 선택 영역이 더 작게 나타납니다.


그러나 이렇게하면 항상 직사각형 블록이됩니다. 내가 읽을 때, 이것은 OP가 원하는 것이 아닙니다 (그들은 시각적 블록 모드를 시도했다고 언급합니다).
Martin Tournoij 2016 년

아니요. 모든 선의 길이가 같은 경우 항상 직사각형 블록이됩니다. 하단에서 시작하여 위쪽으로 강조 표시 한 다음 $를 눌러 줄 끝으로 이동하면 강조 표시된 모든 줄이 줄 끝으로 강조 표시됩니다.
Arthur Bowers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.