2011-02-04 4 views
5

초보자 vim 사용자 인 경우 d[count]<Enter>을 사용하여 회선을 삭제했습니다.
그것은 항상 카운트 + 1 행이 삭제된다는 것을 이상하게 여겼습니다. 나는이 개 라인을 삭제하고 싶다면
, 나는차이점 : d [count]와 d [count]

가 드디어 이유를 이해하려고 시간을 보냈다 ... 3 개 라인 d2을했다 d1 입력 그리고 내가 :d<count>을 사용하고 있어야 나타납니다. 개수는 운동에 의해 다음되지 않기 때문에 비록 질문을 구걸 않습니다

, 왜, 아무것도하지 않는 일반 모드에서 :d1<Enter> <>d1<Enter>

답변

11

d<count>입니다. 따라서 d<count><Enter>을 입력 한 경우 d과 연결된 동작이 <count><Enter>이고 <count> 줄이 아래로 이동합니다. <Enter>은 라인 단위로 동작하기 때문에 d은 줄 바꿈으로 모든 줄을 현재 줄에서 <count> (아래 포함)까지 삭제합니다.

실제로는 명령은 <count>dd입니다.

+0

+1 올바른 것으로 가정합니다. 고맙습니다. –

+1

좋은 설명으로 정상적인 모드에서'd1'을 반복적으로 시도했는데 성공하지 못했습니다 ...' dd'에 대해 몰랐습니다. 'd j'또는 'd k' Vim과 함께하는 재미있는 점은 같은 목표를 달성하는 데 항상 여러 가지 방법이 있다는 것입니다. –

4

d{motion}{motion}이 이동하는 텍스트를 삭제합니다. 3<ENTER>을 입력하면 커서가 현재 줄 아래로 3 줄 이동하므로 d3<ENTER>이 해당 영역을 삭제합니다.

:d[count]은 단순히 [count] 행을 삭제합니다.

차이점은 {motion}count과 같지 않습니다.

이 문제를 해결하려면 visual 모드를 사용하고 삭제할 항목을 선택한 다음 d을 누르기 만하면됩니다.

+0

+1 이제 완벽하게 이해됩니다. –