2013-07-26 15 views
5

A volte desidero cancellare una riga in vim anziché eliminarla.Un breve comando per cancellare la riga corrente?

Prima:

foo 
bar 
lineToClear 
baz 

Dopo

foo 
bar 

baz 

dei comandi vim che conosco, la più vicina che posso arrivare a questo è D (superiore caso d), ma di solito questo mi richiede di digitare 0 prima di andare all'inizio della riga.

Lo so, sono pigro.

Esiste un comando che cancella l'intera riga, non solo i caratteri dopo il cursore?

Forse una specie di tipo Containment -esque di interfaccia cerebrale diretta?

risposta

6

È possibile utilizzare S. Cancella la linea, quindi ti mette in modalità di inserimento. Se non si desidera eseguire la modalità di inserimento, 0D sarà il set di comandi più veloce.

Come indicato in precedenza, è possibile creare un mapping personalizzato eseguendo uno dei seguenti comandi. Il primo argomento (S/D) può essere modificato in qualunque cosa desideri.

:nnoremap S S<Esc> 

o

:nnoremap D 0D 

Reference

+1

Yup, e dal momento che non ha usato 'S' prima, @CoryKlein, puoi rimapparlo per cancellare solo la riga: ': nnoremap SS '. – glts

+1

'S' è sicuramente una buona opzione, ma FWIW in realtà lo sapevo già. Non l'ho menzionato nella mia domanda perché 'D' è già più efficiente nel caso medio - a volte richiede solo un colpo di chiave, dove' S' è garantito che ne richiedano due nel "caso di utilizzo della linea chiaro" dovuto in seguito alla richiesta di premere 'Ctrl-C' o' ESC' in seguito. –

+2

Beh, ecco, @CoryKlein, non puoi essere più efficiente di così. Solo le mappature personali possono portare a ulteriori ottimizzazioni (perché in Vim non esiste un comando "clear the line"). – glts

-1

C'è un modo leggermente migliore rispetto 0D. E 'ancora due chiavi, ma non richiede shift o andare tutta la strada fino alla riga superiore di premere 0:

semplicemente:

dd 
+3

Anche 'dd' è stato il mio primo pensiero. Tuttavia, Cory ha detto "A volte voglio ** cancellare ** una riga in vim_rather di_ eliminarlo." –

Problemi correlati