Jak dostosować Vima do bieżącego stylu wcięcia edytowanego pliku?

39

Pracuję nad wieloma projektami JavaScript. W większości tych projektów wcięcie plików JavaScript ma 2 spacje, więc ustawiłem na to domyślną szerokość wcięcia. Jednak w niektórych innych projektach staje się 1 lub 4.

Czy istnieje sposób, aby poprosić Vima o zmianę stylu wcięcia w oparciu o styl już używany w bieżącym pliku?

Thameera
źródło
Dlaczego nie dodajesz takich ustawień w .vimrc dla określonego typu pliku? :au BufEnter *.js :set shiftwidth=2. Działa to dla wszystkich projektów,
SibiCoder
1
@SibiCoder: Ponieważ nawet ten sam typ pliku może mieć różne style wcięcia w różnych projektach. (np .: projekty nie należące do tej samej firmy)
thameera
*.*to tylko wzór. Możesz także użyć nazwy pliku lub ścieżki. Możesz też użyć podobnego polecenia automatycznego, takiego jak to, które podałem, dla każdego pliku. Możesz poinstruować komendę auto, aby wzięła szerokość bieżącego pliku i umieściła go jako ścieżkę do tego pliku. To całkiem proste.
SibiCoder

Odpowiedzi:

28

Aby dodać do powyższej odpowiedzi @Undo. Tim Pope też ma wtyczkę, która próbuje zrobić to samo w tpope / vim-sleuth

Dhruva Sagar
źródło
5
Z mojego doświadczenia wynika, że ​​Sleuth działa nieco lepiej niż wykrywacz, a także spróbuje określić właściwe ustawienia wcięć dla nowych plików, patrząc na inne pliki w pobliżu systemu plików.
jamessan
@jessessan nie wiedział o tym, dobrze wiedzieć.
Dhruva Sagar
2
Zapoznaj się z naszymi zasadami dotyczącymi odpowiedzi na zalecenia dotyczące wtyczek i dodaj szczegółowe informacje na temat tego, jak dokładnie użyć zalecanej wtyczki do rozwiązania problemu.
200_sukces
15

Nie korzystałem z niego, ale kij / wykrywacz może być tym, czego szukasz. Wygląda na to, że jest aktywny (ostatnia aktualizacja 25 dni temu) i wygląda na to, że robi to, co chcesz:

Wtyczka Vima do automatycznego wykrywania ustawień wcięć. Ta wtyczka dodaje polecenie: DetectIndent, które próbuje inteligentnie ustawić opcje „shiftwidth”, „expandtab” i „tabstop” na podstawie istniejących ustawień używanych w aktywnym pliku.

Cofnij
źródło
Ta wtyczka nie jest już aktywnie rozwijana. (Ostatnia aktualizacja była 3 lata temu .)
Mateen Ulhaq