2011-01-13 44 views

risposta

11

uso (Ctrl - v) per selezionare la colonna che si desidera, e quindi colpito i, digitare i caratteri che si desidera, e quindi colpito Esc

quindi, in questo caso, ci si mette il cursore sul A , Ha colpito Ctrl - v, scendere a D, colpire ho e tipo int (verrà visualizzato solo sulla prima linea durante la digitazione di esso), e poi ha colpito Esc a questo punto che sarà applica quell'inserto a tutte le parti visivamente selezionate.

Questo funziona per qualsiasi parte del documento, inizio riga o fine riga.

:he v_b_I per ulteriori informazioni su Visual Inserisci blocco

+1

Funzionerà solo per le linee vuote se 'virtualedit' non è vuoto. – Benoit

+0

+1 in quanto questa è la soluzione più generale. Per l'aggiunta vedi ': help v_b_A' piuttosto che' v_b_I' –

+0

Interessante che 'visual block' è diverso da' visual mode' –

2

Un sostituto globale dovrebbe fare i:

:%s/.\+/int & =/ 

Ecco come funziona: nella seconda parte della sostituzione (vale a dire nello int & =) la e commerciale viene sostituita con quella lavorata nella prima parte (.*). Poiché .* corrisponde all'intera riga, ogni riga viene sostituita come desiderato.

Se si dispone di righe vuote (in cui non si vuole avere eventuali sostituzioni), si potrebbe andare con una modalità di blocco visiva

:%s/^\S\+$/int & =/ 
+0

Non dovrebbe essere $ 0? –

+0

$ 0? Questo è per Perl o C++ (TR1) – Benoit

+0

$ 0 è probabilmente in un'altra lingua basata su espressioni regolari. –

7

Si può fare questo:

:%s/^/at the beginning/ 
:%s/$/at the end/ 
4

:%s/.\+/int & =

+ non corrisponderà a righe vuote

2

Se è necessario copiare solo la prima parola, quindi fare:

:%s/^\w\+/int & =/g 

Se si desidera conservare il rientro, quindi fare:

:%s/^\(\s*\)\(\w\+\)/\1int \2 =/g 
Problemi correlati