Quando vedo domande su Vim e la riformattazione e indentazione, di solito sento confusione. Ma è abbastanza facile.
Il rientro, eseguito con =, è un processo di spostamento dell'indetizzazione della linea senza inserire alcuna estremità di linea, senza avvolgimento rigido. In parole povere, le colonne iniziali delle linee selezionate possono cambiare, ma il contenuto non può.
D'altra parte, la riformattazione è completa riscrittura di un pezzo di codice selezionato. In poche parole, tutto viene cancellato e scritto di nuovo secondo le regole linguistiche definite in Vim. Facile, eh?
Il patern usuale per reindentation è di andare all'inizio del file (gg), passare alla selezione della linea (V), andare alla fine del file (G) e eseguire la reidentificazione (=).
Ecco indentazione in vim: ggVG=
riformattazione modello inizia con le stesse chiavi (ggVG), ma invece di chiave uguale, si fa gq - comando reformat Vim.
Ecco formattazione in vim: ggVGgq
questo funziona out-of-box in ogni caso Vim, anche con testo in chiaro. Solo quando Vim non comprende il linguaggio di programmazione, è necessario fornirgli le regole di formattazione corrette (in genere un gruppo di file .vim che devono passare alla struttura della directory .vim).
La riformattazione per Ruby funziona solo quando è installato il plug-in vim-ruby.
Ho dovuto pubblicare questo on my blog ;-) Non è Vim bello? È.
Ho provato questo in un file rubino e ha fatto rientrare tutte le righe in modo che avessero iniziato 8 caratteri da sinistra. Ha completamente ignorato il rientro originale. – opsb
Vedere la modifica nella domanda originale per la mia soluzione al problema di formattazione. – opsb
Guardato il vimcast, vale la pena dare un'occhiata – opsb