vi 편집기에서 현재 커서 위치에서 주어진 줄 번호까지 삭제


108

현재 커서 행에서 vi의 주어진 줄 번호까지 텍스트 블록을 어떻게 삭제합니까?

예를 들면 :

 49 <j:set var="changeSet" value="${build.changeSet}" /> <----- delete from here (cursor position)
 50 <j:if test="${changeSet!=null}">
 51   <j:set var="hadChanges" value="false" />
 52   <TABLE width="100%">
 53     <TR><TD class="bg1" colspan="2"><B>CHANGES</B></TD></TR>
 54     <j:forEach var="cs" items="${changeSet.logs}" varStatus="loop">
 55       <j:set var="hadChanges" value="true" />
 56       <j:set var="aUser" value="${cs.hudsonUser}"/>
 57       <TR>
 58         <TD colspan="2" class="bg2">${spc}Revision <B>${cs.revision}</B> by
 59           <B><j:choose>
 60             <j:when test="${aUser!=null}">${aUser.displayName}: </j:when>
 61             <j:otherwise>${cs.user}: </j:otherwise>
 62           </j:choose></B>
 63           <B>(${cs.msgAnnotated})</B>                <----- to here (line 63)
 64          </TD>
 65       </TR>
 66       <j:forEach var="p" items="${cs.paths}">
 67         <TR>
 68           <TD width="10%">

Vim에서는 일반적으로 시각적 선택 모드를 사용하지만이 서버에는 Vim이 없습니다. 또한 경우에 따라 블록 내에있는 줄 수를 계산하는 것보다 줄 번호를 지정하는 것이 더 빠릅니다.


답변:


210

d63G63 행까지 현재 행에서 삭제 하는 것과 같은 것을 사용할 수 있습니다 .


5
Oooh, 일반 모드의 솔루션-더 좋습니다!
seanhodges 2011-06-17

50
여기에 추가하려면 45 ~ 64 행을 삭제하려면 다음을 수행하십시오. 45,64d
ThinkCode

110

에서 삭제하려면 하는 사용

:a,bd

현재에서 b 사용으로

:,bd

( 코드의 ab 는 숫자로 대체됩니다)


1
우수한. 위의 삭제 예제를 수행하기 위해 ":., 63d"를 수행 할 수있었습니다. 지루한 감사합니다!
seanhodges 2011-06-17

13

허용되는 답변과 동일하지만 입력하는 것이 약간 빠릅니다.

d63gg 현재 행에서 63 행까지 삭제합니다.


8

라인을 세는 이유는 무엇입니까? 삭제할 마지막 줄로 이동하여 ma식별자 "a"로 "표시"하는 항목을 입력하여 표시합니다 . 그런 다음 삭제하려는 맨 위 줄로 이동하여 d'a"a"를 표시하기 위해 삭제를 입력 합니다. Bam!


작동하지 않습니다 (vim 7.4.160, CentOS). 아마도 확장 또는 특수 구성이 필요할 수 있습니다.
독일어 Khokhlov

6

Vi에서 줄 블록을 삭제하려면 :

n: 인 에서 행 번호

m: 인 줄 번호

  1. 현재 줄에서 주어진 줄 번호까지

    :,md

  2. 특정 라인 번호에서 /까지

    :n,md

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