이동 - Vim에서 전체 줄 복제




vim 탭 이동 (13)

Eclipse에서 IntelliJ IDEA / Resharper 또는 Ctrl + Alt + / ↓의 Ctrl + D 와 비슷한 방법으로 Vim에서 전체 라인을 복제하는 방법은 무엇입니까?

https://code.i-harness.com


1 gotcha : "p"를 사용하여 줄을 넣으면 커서가있는 줄 뒤에 놓습니다. 그래서 줄을 긋고 싶으면 줄을 추가하고 싶으면 줄을 아래로 움직이지 마십시오 새로운 라인을 넣기 전에.


vi를 모르는 사람은 위의 몇 가지 대답을 통해 " 현재 줄 뒤 / 붙여 넣기"와 같은 구절을 오도 낼 수 있습니다.
실제로 "붙여 넣기 ... 커서 뒤 / 앞"입니다.

선을 복사하려면 y y 또는 Y
또는
라인을 삭제하려면 d d

그때

p 커서 뒤에 복사 또는 삭제 된 텍스트 붙여 넣기
또는
P 를 사용하여 커서 앞에 복사 또는 삭제 된 텍스트 붙여 넣기


더 많은 키 바인딩에 대해서는 다음 사이트를 방문하십시오 : vi 완전한 키 바인딩 목록


기본값은 y y p입니다 . 그러나이 리 바인딩을 1 년 정도 사용해 왔습니다.

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv


나는 좋아한다 : Shift + v (전체 라인을 즉시 선택하고 원하는 경우 다른 라인을 선택하게한다), y, p


나는이 매핑을 사용하고자한다 :

:nnoremap yp Yp

네이티브 YP 명령과 함께 사용하면 일관성이 있기 때문입니다.



또한 <Cx> <Cl>을 사용해보십시오.이 모드는 삽입 모드에서 마지막 줄을 반복하고 모든 줄이 표시된 완료 창을 표시합니다. <Cp>와 거의 유사합니다.


선을 복사하려면 y y 또는 Y
또는
d d 는 라인을 삭제 (커팅)합니다

그때

p : 현재 줄 다음에 복사 또는 삭제 된 텍스트 붙여 넣기
또는
복사 또는 삭제 된 텍스트 현재 줄 앞에 붙여 넣으려면 P


이 작업을 수행:

먼저 현재 줄을 복사 한 다음 붙여 넣으려면 y 를 입력합니다.


일반 모드 : 다른 답변을 참조하십시오.

Ex 방법 :

  • :t. 선을 복제 할 것이고,
  • :t 7 은 7 번째 줄 다음에 복사합니다.
  • :,+t0 는 파일 시작 부분에서 현재 및 다음 행을 복사합니다 ( ,+ 는 범위의 .,.+1 ).
  • :1,t$ 는 처음부터 끝까지 커서를 복사합니다 ( 1, 은 범위 1,. 의 동의어입니다).

복사하는 대신 이동해야하는 경우 :t 대신에 :t :m 사용 :m .

이것을 :g 또는 :v :와 결합하면 정말 강력해질 수 있습니다.

  • :v/foo/m$ 는 "foo"패턴과 일치하지 않는 모든 행을 파일의 끝으로 이동시킵니다.
  • :+,$g/^\s*class\s\+\i\+/t. 커서 다음에 양식 class xxx 의 모든 후속 행을 복사합니다.

참조 : :help range , :help :t , :help :g , :help :m:help :v


y y

현재 행을 지우지 않고 꺼냅니다.

d d

현재 줄을 삭제합니다.

이전 방법 중 하나를 사용하여 줄을 긋 put .


y y p - "yippee!"로 기억하십시오.

사이에 숫자가있는 여러 줄 :

y 7 y p


이보다 더 간단하지 않습니다! 정상 모드에서 :

yy

다음에 붙이려는 줄로 이동하십시오.

p




vi