2011-06-17 46 views
81

如何從當前光標行中刪除一段文本到vi中給定的行號?在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的。在某些情況下,指定一個行號而不是指定塊內有多少行是更快的。

+0

相關:https://vi.stackexchange.com/questions/1915/how-do-i-delete-a-large-block-of-text-without-counting-the-lines – 2017-12-15 12:44:44

回答

148

您可以使用類似d63G從當前行刪除,直到行63

+3

Oooh,在正常模式下的解決方案 - 更好! – seanhodges 2011-06-17 10:58:27

+34

要添加到此,如果要刪除第45行到第64行,請執行:45,64d – ThinkCode 2013-09-06 16:54:31

92

要從從當前刪除b使用

:a,bd 

b使用

:,bd 

(其中一個在代碼b被取代你的號碼)

+1

優秀。我能夠做到「:。,63d」來執行上面的刪除示例。謝謝你! – seanhodges 2011-06-17 10:45:37

+1

正在等待強制性標記解決前10分鐘... – seanhodges 2011-06-17 10:45:59

4

要刪除線的六塊:

n:是行號

m:是行號

  1. 選自Cu rrent線,直到一個給定的行號 -

    :,md

  2. 自/至特定行號

    :n,md

8

一樣接受的答案,但稍快鍵入:

d63gg從當前行刪除到第63行。

5

爲什麼要計算行數?轉到要刪除的最後一行,並通過鍵入ma來標記它,並用標記「a」標記它。然後轉到要刪除的頂行,並鍵入d'a進行刪除以標記「a」。巴姆!

相關問題