Cancella una riga più velocemente di [0] [d] [$]


18

C'è un modo più veloce per cancellare il testo su una riga rispetto a

  • premendo 0per saltare all'inizio, quindi
  • premendo d$per cancellare fino alla fine della riga?

Inoltre, se volessi cancellare tutto tranne il rientro? C'è un modo per farlo?

Risposte:


34

Come hai detto, ci sono diversi modi e puoi anche prendere in considerazione quale sarà la tua prossima azione dopo aver cancellato o eliminato la riga corrente.

  1. dd eliminerà la riga corrente (non cancella)
  2. 0D cancellerà la riga corrente includendo gli spazi bianchi
  3. ^Dcancella la riga corrente senza includere gli spazi bianchi ( ^dg_salva lo spazio finale)
  4. 0C cancella la riga corrente incluso lo spazio bianco e ti mette in modalità inserimento
  5. ^Ccancella la linea corrente senza spazi bianchi e ti mette in modalità di inserimento ( ^cg_salva spazio finale)

cco Sfunzionerà come 4. o 5. se "autoindent" è disattivato o attivato rispettivamente.

Quindi usa qualsiasi cosa si adatti all'azione a portata di mano. Credo che 0Dsia il più veloce per cancellare la linea, ma puoi mapparlo su qualcosa se lo desideri, per renderlo ancora più veloce.


7
@SuperScript Sè sinonimo dicc
FDinoff l'

1
Grazie per l'ottima risposta, @akshay; TYLTK ha il meglio: vi.stackexchange.com/…
Robbie Wxyz,

9

Sì. Se c'è una cosa che mi piace di Vim, è che la risposta a "Posso farlo?" è quasi sempre un enfatico .

0D Salta all'inizio, quindi cancella fino alla fine della linea.

^D (non Ctrl + D) salterà al primo carattere non bianco, quindi verrà eliminato fino alla fine.

(PS L'ho capito proprio ora e volevo condividere con qualsiasi altro noob. Per favore fatemi sapere se c'è un modo migliore.)


6

Cancellare la linea con una chiave (spostato): S.

Questo mantiene anche il trattino.

Passa alla modalità di inserimento nella prima posizione dopo il rientro o all'inizio della riga - proprio quello che ti serve per sostituire una riga - quindi il nome S- come sostituto.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

Sè un'ottima chiave.
domi91c,

3

Con il plug-in " vim-textobj-line " di Kana , puoi usare le operazioni su una riga rientrata con il(es. dil) O su un'intera riga senza la nuova riga, con al(es yal.). Il vantaggio di questo approccio è sottile: invece di dover pensare a entrambi i movimenti (inizio, fine) per l'operazione desiderata, si specifica direttamente l' oggetto di testo : i n l ine, a l ine.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.