Qual è la combinazione più breve?VIM: Come eliminare 3 parole dalla fine della riga in modalità normale?
P.S. Di solito lo faccio UnCtrl + wCtrl + wCtrl + wEsc.
In altre parole, devo passare alla modalità di inserimento.
P.P.S. db non funziona.
Qual è la combinazione più breve?VIM: Come eliminare 3 parole dalla fine della riga in modalità normale?
P.S. Di solito lo faccio UnCtrl + wCtrl + wCtrl + wEsc.
In altre parole, devo passare alla modalità di inserimento.
P.P.S. db non funziona.
Questa sequenza di comandi,
$3bD
è la via più breve per farlo mi viene in mente al momento, ma lascia fuori un brutto spazio finale.
$3gelD
è un altro modo per sbarazzarsi dello spazio finale.
Si può anche pensare fuori dagli schemi e giocare con gli spazi invece che parole:
$3F D
L'ultimo potrebbe non essere lo stesso, in quanto potrebbe essere più vicino all'utilizzo dei limiti WORD invece dei limiti delle parole (che 'ge' e' b' usano). –
Risolve comunque il problema dello spazio bianco finale. – romainl
@romainl '$ 3F D' non funzionerà se le parole sono separate da tabulazioni o più spazi. '$ 3bDx' è leggermente migliore, ma il tuo altro suggerimento di' $ 3gelD' è probabilmente il migliore. '$ 3b3daw' fa lo stesso ma è più lungo; '$ daw..' è un'alternativa interessante. –
$ 3bd
O
$ 3bDx
... se anche voi volete eliminare lo spazio finale.
Vai alla fine della linea, andare indietro di 3 parole, quindi eliminare alla fine della linea: $bD
o
Vai fine della riga, eliminare indietro 3 parole, quindi eliminare il carattere extra: $dbx
$bD che translates a
Inoltre , è anche possibile utilizzare il comando normal in modalità ex per ottenere lo stesso
:norm! $3bD
Come altri hanno menzionato, $3bD
è il più breve e $3bDx
sarà sufficiente per rimuovere gli spazi bianchi rimanenti, assumendo che sia esattamente uno spazio o una scheda.
Per tenere conto di tutti gli spazi, è possibile utilizzare $3gelD
. Questa opzione ha il vantaggio di ripulire correttamente nella maggior parte dei casi, ma non riesce quando una riga contiene esattamente 3 parole perché il movimento 3ge
torna alla riga precedente.
Un approccio alternativo è basato su daw
. Dal momento che 3daw
agisce in avanti, è necessario utilizzare $daw..
o $3b3daw
. Per 3 parole, $daw..
è più breve e probabilmente più desiderabile, ma $3b3daw
è più Vim-esque e può essere facilmente esteso a più parole.
b
, ge
e w
possono essere sostituiti con B
, gE
e W
per rimuovere parole, invece di parole.
Sfortunatamente, '$ daw..' funziona solo se non si utilizza l'opzione' virtualedit'. Con virtualedit a 'all' o' onemore', l'alternativa è '$ caw
Interessante; in tal caso, anche '$ 3bDx' fallirebbe. –
Macro per la rimozione di N parole? – cutalion
se si è nella posizione che si desidera eliminare, basta usare 'd $' per cancellare tutto alla fine della riga. – mgoffin
Di solito sono all'inizio della riga – cutalion