2010-02-12 9 views
37

So che per eliminare n righe, il comando è [n] dd, dove n è il numero di righe da eliminare.Eliminazione fino a una determinata riga in Vim

Ma cosa succede se voglio cancellare fino a un certo numero di linea? Dite, se sono sulla linea 65 e voglio cancellare fino alla linea 126 senza dover fare i conti, come potrei farlo?

+3

I comandi "delete", "yank", ecc. Sono molto generici in vim: possono assumere qualsiasi "operatore di movimento". 'd/hello' cancellerà dal cursore al prossimo' ciao' per esempio. 'd''' cancellerà dalla posizione corrente alla riga dell'ultima posizione, ecc. –

risposta

57

d126G

Elimina, numero di riga, andare.

Molti comandi in Vim possono essere seguiti da un comando di spostamento per specificare l'ambito.

+0

+ 1 facendo questo perché richiede meno caratteri (e almeno per me, si adatta molto di più al "linguaggio di vim") rispetto alle altre opzioni. – Amber

+0

Mi piace perché non devi usare il comando:, che sembra relativamente più rozzo. – neuromancer

+0

Spiega che puoi registrare i tuoi comandi ':' in qualche file (viminfo), e può essere riutilizzato in seguito. Mi piace 'q:' quindi '/ searchforsomething', quindi invio invio ... –

10
:,126d 

tutto fatto.

+0

Non penso che ci sia una sintassi più breve di questa! (Ma sarò molto contento se ho torto) – JohnnyQ

33

Utilizzare questo comando:
65,126d

16
:.,126d 

. è la linea attuale. Se si desidera eliminare dalla riga successiva, è possibile utilizzare invece .+1.

+1

+1 perché è così che lo faccio ;-) –

+0

Questo è più sicuro per me, perché non posso sempre guardare la tastiera e verificare il numero. – JohnnyQ