vim에서 커서를 움직이지 않고 특정 줄을 잡아 당기는 방법은 무엇입니까?


39

예를 들어

대체 텍스트

커서 를 라인 4 로 이동하지 않고 라인 4 만 라인 12로 잡아 당겨 붙여 넣을 수 있습니까?

대체 텍스트


나는 "나를 잡아라!" 2 번째 스크린 샷에서 5 번째 라인에 나타납니다.
Louis Salin

답을 주셔서 감사합니다 @Louis. 스크린 샷을 업데이트했습니다.
Lazer

답변:


51

커서가 이미 12 행에 있으면 간단한

: 4 년
피

나를 위해 그것을합니다.


1
좋은! 에 해당하는 것이 x있습니까? 내가 시도 :4x하면 E140: Use ! to write partial buffer. 감사!
dotancohen

D :이 놀라운 말을해야
nXqd

@dotancohen:4d
n.st

상대 라인 번호로 이것을 수행하는 좋은 방법이 있습니까?
TrungDQ

상대 숫자는 +와-를 사용하십시오. 따라서 -4는 커서 위의 4 행이고 +4는 그 아래의 4 행입니다.
rickythefox

10

방법 : 커서가 11 행에 있으며 "vi"모드에 있습니다.

:4co.<return>

패턴으로 분명히 할 수도 있습니다.

:/^Yank/co.<return>

"co"(복사) 대신 "mo"(이동)를 사용하여 줄을 바꾸는 대신 줄을 이동하면됩니다.


1
더 짧음 ( 복사 명령으로 t 는 ed에서 남은 :4t.
것임


8

시험:

:4co11

인수를 사용하여 0행에 붙여 넣을 수 있습니다 1. 이것은 또한 범위와 함께 작동합니다 :

:m,n co k

라인을 복사합니다 m통해 n라인 k+1. 또한 버퍼의 위치는 중요하지 않습니다. move명령은 m유사하게 작동합니다.


2

이것은해야합니다 :

:4,12y
p
k

1
아니요, 줄 번호는 4 ~ 12 번입니다.
Lazer

4 번째 줄을 12 번째 줄로 복사하여 붙여 넣기를 의미했습니다.
Lazer

편집했습니다. 이것이 당신이 원하는 것입니까?
Umang

2

다른 사람들은 이미이 작업을 수행하는 가장 직접적인 방법을 언급 :4y했지만 유용 할 수있는 두 가지 메모를 추가하고 싶습니다.

하나, 당신이 입력 :help range하면 범위를 사용하여 Ex 스타일 명령에 적용하는 방법에 대한 모든 것을 배우게됩니다. 많은 경우에 매우 유용하며 줄 번호를 사용하는 것보다 훨씬 더 다양합니다. 예를 들어, 문서 시작 후 "yank"로 시작하는 첫 번째 행을 시작하려면 (첫 번째 행에 있더라도)을 사용하십시오 :0/^yank/y. 범위의 가장 강력한 부분은 이들을 결합하는 능력입니다. 예를 들어 :./^Chapter/+50?Pete?d"다음 줄을 찾아 단어 챕터 (현재 줄에서 앞으로 검색)로 시작한 다음 50 줄 앞으로 이동하고 피트 단어라는 단어를 뒤로 검색합니다. 찾은 첫 번째 줄을 삭제하십시오. " 실제로 커서를 움직이지 않는 것을 제외하고는 사용자가 말한 것을 수행합니다.

(이 유형의 범위 지정을 사용하여 커서 아래에서 함수 이름을 검색 한 다음 "설명"이라고 표시된 다음 행을 검색하여 특정 레지스터 등을 검색하는 등의 문서 작성을 자동화했습니다.)

다른 팁은 점프에 대해 알아야한다는 것입니다. :help jump-motions그것에 대해 완전히 배우려면 입력 하십시오. 그러나 여기에서 관련된 방법은 4 줄로 건너 4Gyy''뛰고 돌아갑니다 (또는 아포스트로피 대신 백틱을 사용하여 동일한 LINE이 아닌 정확한 시작 위치로 되돌아갑니다) 당신은 시작했습니다.)


2

최단 :

:1t. 현재 아래의 첫 번째 줄을 복사합니다.

범위 포함 : :1,4t.전류 아래에 1 행에서 4 행 (포함)을 복사합니다.

상대 라인 번호로도 가능합니다.

:-1t. 현재 아래의 이전 줄을 복사합니다.

귀하의 예 :4t-1에서 원하는 줄 아래에 네 번째 줄을 복사합니다.

참고 : :t:co[py]명령 의 동의어입니다 .

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