2010-09-15 22 views
14

Dire che ho il testo corrente nel buffer, dove _ segna il cursoreVim: la linea di rientro corrente (in bianco) e inserire

int main(int argc, char **argv) { 
    printf("Hello, world!\n"); 

_ 
} 

ho indentexpr su (anche se una soluzione con cindent o autoindent probabilmente funzionerà , pure).

Come posso iniziare inserendo quindi il mio cursore viene posizionato la colonna appropriata a seguire le regole indentazione, vale a dire:

int main(int argc, char **argv) { 
    printf("Hello, world!\n"); 

    _ 
} 

Attualmente mi trovo con ddO spesso (o ddo alla fine del buffer) , ma sembra che ci dovrebbe essere un modo migliore. Utilizzando == o anche >> o v> non sembra funzionare perché la linea è vuota.

risposta

27

cercare di tornare in modalità normale e digitando S

+0

Sì! Era così! Molte grazie. (Ero già in modalità normale, nella modalità di inserimento a volte lo spam .) – strager

+4

Guardando a ': help S',' cc' fa la stessa cosa. (Non uso mai 'cc', quindi probabilmente è per questo che non ho nemmeno pensato di usarlo (né' S', di cui non ero nemmeno a conoscenza).) – strager

6

Se io sono in una riga vuota, ma nel punto di inserimento sbagliato, tendo a usare CTRL-f (mentre in modalità di inserimento) per far rientrare al posto giusto .

Questo è utile quando ho colpito ESC per uscire dalla modalità di inserimento e ho perso il rientro corretto. Colpire i seguito da CTRL-f fa il trucco.

+0

'==' lo fa, ma non lo sapevo potrebbe fare '==' in modalità inserimento. – strager

+0

@strager cosa si intende per '==' potrebbe fare in modalità inserimento? Sembra che non funzioni per me. – Thomson

Problemi correlati