Come faccio ad adattare Vim allo stile di rientro corrente del file che sto modificando?


39

Lavoro su una serie di progetti JavaScript. Nella maggior parte di questi progetti, il rientro dei file JavaScript è di 2 spazi, quindi ho impostato la larghezza del rientro predefinita su quello. Tuttavia diventa 1 o 4 in alcuni altri progetti.

C'è un modo per chiedere a Vim di cambiare lo stile di rientro in base allo stile già utilizzato nel file corrente?


Perché non aggiungi tali impostazioni in .vimrc per un particolare tipo di file? :au BufEnter *.js :set shiftwidth=2. Questo funziona per tutti i progetti,
SibiCoder,

1
@SibiCoder: Perché anche lo stesso tipo di file può avere stili di rientro diversi in progetti diversi. (es .: progetti non appartenenti alla stessa azienda)
thameera

*.*è solo uno schema. Puoi anche usare il nome file o il percorso. In alternativa, puoi utilizzare un comando automatico simile a quello che ho fornito per ciascun file. È possibile indicare al comando automatico di prendere la larghezza di banda del file corrente e inserirlo nel percorso di questo file. È abbastanza facile
SibiCoder

Risposte:


28

Da aggiungere alla risposta di @Undo sopra. Anche Tim Pope ha un plugin che cerca di fare lo stesso con tpope / vim-sleuth


5
Sleuth sembra funzionare un po 'meglio del rilevatore, nella mia esperienza, e cercherà anche di determinare le impostazioni di rientro corrette per i nuovi file guardando altri file nelle vicinanze del filesystem.
Jamessan,

@jamessan non lo sapeva, buono a sapersi.
Dhruva Sagar,

2
Leggi la nostra politica sulle risposte alle raccomandazioni dei plug-in e aggiungi alcuni dettagli su come utilizzare esattamente il plug-in consigliato per risolvere il problema.
200_successo

15

Non l'ho usato, ma ciaranm / detectindent potrebbe essere quello che stai cercando. Sembra essere attivo (ultimo aggiornamento 25 giorni fa) e sembra che faccia quello che vuoi:

Un plug-in Vim, per rilevare automaticamente le impostazioni di rientro. Questo plugin aggiunge un comando: DetectIndent, che tenta di impostare in modo intelligente le opzioni 'shiftwidth', 'expandtab' e 'tabstop' in base alle impostazioni esistenti in uso nel file attivo.


Questo plugin non è più in fase di sviluppo attivo. (L'ultimo aggiornamento è stato 3 anni fa .)
Mateen Ulhaq,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.