[vim] vim에서 현재 줄 아래의 줄을 삭제하는 방법은 무엇입니까?
현재 줄 바로 아래에있는 한 줄 (또는 여러 줄)을 삭제하는 명령이 있습니까? 현재 저는 jdd다음과 같이하고 있습니다.
그리고 .필요에 따라 반복합니다. 이 모든 것을 결합하는 명령이 있습니까?
업데이트 : 내가 그러한 명령을 갖고 싶은 이유는 현재 위치에서 멀어지고 싶지 않지만 아래 줄을 삭제할 수 있기 때문입니다.
답변
delete ex 명령은 잘 작동합니다.
:+,$d
현재 +1부터 끝 ($)까지 모든 줄이 삭제됩니다.
다음이 추적 범위가 작동 할 선, 삭제 +1,+2
또는 속기+,+2
:+,+2d
@ib가 언급했듯이 :delete
또는 :d
명령은 커서를 삭제 된 텍스트 옆의 줄 시작 부분으로 이동합니다. ( nostartofline
세트로도). 이를 극복하기 위해 ``
정상 모드 명령을 실행할 수 있습니다 . ``
마지막 점프 이전의 정확한 위치로 다시 점프합니다 :d
. 이 경우에는 명령입니다. 우리의 명령은 지금
:+,+2denter``
또는 하나의 전 명령으로
:+,+2d|norm! ``
이 작업을 더 쉽게하기 위해이 모든 것을 명령으로 마무리합니다.
command! -count=1 -register D :+,+<count>d <reg><bar>norm! ``
이제 다음 3 줄을 삭제합니다.
:3D
이 명령은 또한 {reg}
좋아요 :delete
와 :yank
할 수 있습니다. 따라서 다음 4 줄을 레지스터로 삭제하면 다음과 a
같습니다.
:4D a
자세한 내용은
:h :d
:h :command
:h :command-register
:h :command-count
:h ``
답변
dG작동합니다.
즉, 현재 커서에서 파일 끝까지 모든 행을 삭제합니다.
답변
현재 행 아래의 모든 행이 삭제됩니다.
jdG
불행히도 삭제 후 커서가 현재 줄의 시작 부분으로 이동합니다.
답변
음, 간단하게 xxdd 명령을 사용할 수 있습니다. 대부분의 경우 편집중인 스크립트의 크기를 알고 있습니다 (적어도 아이디어는 있음). 따라서 아래와 같은 명령은 일반적으로 충분합니다.
- 99dd
- 999dd는 커서 위치에서 시작하는 999 줄을 제거합니다.
- 9999dd
- 매우 긴 스크립트의 경우 99999dd;)
답변
다른 솔루션은 유익하지만 매크로를 사용하는 것이 더 간단하다고 생각합니다.
qq
(녹음 시작)
jddk
(아래로 내려 가서 줄을 삭제하고 위로 돌아가십시오. 즉, 원하는 작업)
q
(녹음 종료)
이제 @q
커서를 현재 위치에 유지하면서이 작업을 수행 할 수 있습니다 . 5@q
커서 아래 5 줄을 삭제 하는 것과 같은 작업을 수행 할 수도 있습니다 .
마지막으로 작업을 두 번 이상 반복하는 @@
경우 처음 실행 한 후에 입력 할 수 있습니다 @q
(이 경우 마지막으로 사용 된 매크로가 반복됨 q
).
답변
이것은 마크를위한 일입니다!
시험 maj20dd`a
ma
파일 별 마크 ‘a’ j20dd
를 설정하고 원하는 삭제 (이 경우 20 줄) `a
를 수행하고 마크의 위치 (줄 및 열)로 복원합니다.
분명히이 패턴은 마크로 돌아 가기 전에 원하는 모든 작업을 수행하도록 확장 할 수 있습니다. 당신이 사용하는 경우 mA
(또는 다른 대문자) 마크는 실제로 당신도 편집 다른 곳에서 반환하기 전에, 그래서 파일에서 고유해야합니다. 자주 사용하는 경우 위에서 제안한대로 매크로로 만들 수 있습니다.
답변
삭제할 줄 수를 입력 할 수 j 20 dd k있습니다..