커서 위치에서 시작하여 VIM에서 줄을 빠르게 삭제하려면 어떻게해야합니까?


267

VIM에서 커서 위치에서 시작하는 나머지 줄을 삭제할 수 있기를 원합니다. 이 작업을 수행하기 쉬운 명령이 있습니까?

설명을 돕기 위해 이것은 명령 이전입니다.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

이것은 명령 이후입니다

The q
     ^
     |----- Cursor is here.

답변:


430

(코멘트의 좋은 추가를 포함하도록 편집 :)

D또는 이에 상응 d$하는 줄은 나머지 줄을 삭제하고 명령 모드를 유지합니다. C또는 c$나머지 줄을 삭제하고 삽입 모드로 전환하면 새 텍스트가 줄에 추가됩니다.

이것은의 일부 vitutorvimtutor, 뛰어난 정력 초보자를위한 "읽기".


1
블라스트, 나는 그것이 쉬운 일이라고 생각했습니다 d. 나는 질문을 여기에 게시하는 것이 더 빠를뿐만 아니라 매뉴얼을 읽기 전에 온라인으로 검색하는 것을 기본으로하는 다른 사람들에게 도움이 될 것이라고 생각했습니다.
Anthony

2
또는 C커서를 표시된 위치에 놓을 수있는 유일한 "실제"방법이지만 삽입 모드가됩니다.
Walter

1
@Anthony :에 대한 " d다음에 뭔가"가있는 명령도 있습니다 D. 여기서 "something"은 $모션 d$입니다.
ib.

2
그리고 인서트 모드로 들어가려면 C(또는 c$)
Benoit

7
이 솔루션은 이미 답변되었지만 VIM으로 전체 라인을 삭제하는 방법을 찾기 위해 인터넷 검색을하고 있다는 것을 알았습니다. 내가 찾은 옵션 dd은 명령 모드에서 온 것입니다. 나는 이것이 넘어지는 다른 사람들을 도울 수 있기를 바랍니다.
Frito


21

당신은 또한 관심이 C있을 것입니다. 같은 행 끝을 삭제 D하지만 커서 위치에서 삽입 모드로 전환합니다.




5

이것은 매우 오래된 질문이지만 VIM이 여전히 관련되어 있으므로 무언가를 분명히해야합니다.

2018 년 10 월 현재 여기에있는 모든 답변과 의견은 일반적으로 "잘라 내기 (cut)"동작으로 알려진 것을 말하고 있으므로 이들 중 하나를 사용하면 현재 VIM의 명명되지 않은 레지스터에 있는 모든 내용이 대체됩니다 . 이 레지스터는 기본 복사 / 붙여 넣기 클립 보드처럼 취급되는 경향이 있으므로, 삭제 된 항목이 이후에 붙여 넣기 때문에 나중에 같은 위치에 무언가를 붙여 넣기 위해 나머지 행을 삭제하는 경우 이러한 답변 중 원하는대로 작동하지 않습니다. 이전에 발목을 잡은 것 대신에.

영업의 맥락에서 진정한 삭제 명령은 "_D(또는 "_C삽입 모드가 필요한 경우)이은으로 삭제 된 컨텐츠 전송 블랙홀 레지스터 에 의해 지정, "_(여전히 사용하여이 작업을 실행 취소 할 수 있지만이 다시 아무도 귀찮게하지 않습니다, u).

즉, 마지막으로 중단 된 내용은 0 레지스터에 저장되며 이름이없는 레지스터로 바뀌어도 여전히 붙여 넣을 수 있습니다 "0p.

VIM 재미를 위해 블랙홀 레지스터레지스터에 대해 자세히 알아보십시오 !


4

D또는 dd행을 삭제하고 레지스터에 복사합니다. Vx회선을 삭제하고 일반 모드를 유지 하는 것을 사용할 수 있습니다 .

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