Wypróbowałem zwykłe polecenie „gg = G”, którego używam do naprawiania wcięć w plikach kodu. Jednak wyglądało na to, że nie działa poprawnie na plikach HTML. Po prostu usunął całe formatowanie.
Jeśli autoformatowanie / wcięcie vima gg=G
wydaje się być "zepsute" (np. Wcięcie po lewej stronie każdej linii), najprawdopodobniej wtyczka indent nie jest włączona / załadowana. Powinien naprawdę dać komunikat o błędzie zamiast po prostu robić złe wcięcia, w przeciwnym razie użytkownicy po prostu uważają, że funkcja autoformatowania / wcięć jest okropna, podczas gdy w rzeczywistości jest całkiem dobra.
Aby sprawdzić, czy wtyczka indent jest włączona / załadowana, uruchom :scriptnames
. Sprawdź, czy .../indent/html.vim
jest na liście. Jeśli nie, oznacza to, że wtyczka nie została załadowana. W takim przypadku dodaj tę linię do ~/.vimrc
:
filetype plugin indent on
Teraz, jeśli otworzysz plik i uruchomisz :scriptnames
, powinieneś zobaczyć .../indent/html.vim
. Następnie uruchom gg=G
, co powinno teraz wykonać poprawne autoformatowanie / wcięcie. (Chociaż nie doda nowych linii, więc jeśli cały kod html znajduje się w jednym wierszu, nie będzie wcięty).
Uwaga: jeśli :filetype plugin indent on
zamiast tego korzystasz z wiersza poleceń vim ~/.vimrc
, musisz ponownie otworzyć plik :e
.
Nie musisz się też martwić o ustawienia autoindent
i smartindent
ustawienia, nie są one do tego istotne.