Trattare con indentazione del codice in Vim?
-
28-09-2019 - |
Domanda
Io lavoro su un team di ingegneri di 4 persone, per lo più a scrivere javascript, mentre di tanto in tanto dilettarsi in Ruby e Python. Così, come una squadra, noi condividere il codice per tutto il tempo, e come la maggior parte dei programmatori fanno, ogni membro della squadra ha il suo livello preferito di rientro e le relative impostazioni. Io sono uno dei 2 membri del team che utilizzano e amano Vim come il mio editor di codice primario. Amo la mia squadra, ma ho anche l'amore il mio rientro , che succede ad utilizzare la scheda caratteri a 4 spazi. Per ulteriori contesto, ecco quello che uso nel mio Vimrc:
set ts = 4 sts = 4 sw = 4 expandtab " 4 space tabs
Con tanto di code-sharing e l'editing collaborativo in corso nella squadra, i file di codice principale di solito iniziano ad apparire come una massa di scheda mista e spazio caos, in modo che anche il classico trucco Vim di selezionare tutte e premendo =
a intelligente trattino non ha molto effetto.
In ogni caso, la mia domanda è questa: In Vim (MacVim specifico) C'è un modo migliore (più affidabile) di convertire un file di codice da disordinato, rientro misto al mio rientro preferito? Che si tratti di un ambiente .vimrc o di un comando inserisco durante la modifica del file, non mi interessa.
Grazie per eventuali suggerimenti in anticipo!
Soluzione
:retab
.
Detto questo, vi consiglio vivamente di, come una squadra, d'accordo e usare uno stile di rientro quando si lavora in modo collaborativo su un determinato progetto.
Altri suggerimenti
Abbiamo lo stesso caso di utilizzo di JavaScript e Ruby nello stesso negozio.
autocmd FileType * set tabstop=4|set shiftwidth=4
autocmd FileType ruby set tabstop=2|set shiftwidth=2
set expandtab
Trovo che mi piace 4 spazi per javascript ma sembra rubino molto meglio con solo due spazi.
Sono d'accordo con Yaser, è necessario impostare lo standard (spazi FTW)
Una volta che avete deciso di sbarazzarsi di tutti i tab caratteri utilizzano grep per trovare i file: retab
grep -P '\t' * -R -c