Jak zmusić Vima do podświetlenia składni pliku jako html?

120

Jak ustawić podświetlanie składni Vima, aby traktować rozszerzenie pliku jako plik HTML?

Używam szablonu ez, więc rozszerzenie pliku to .ezt. Ale większość z nich to normalny kod HTML.

Karthick
źródło

Odpowiedzi:

109

Możesz również umieścić to w swoim .vimrc:

au BufReadPost *.ezt set syntax=html
Benoit
źródło
E216: Nie ma takiej grupy lub zdarzenia: BufLoad * .ezt set syntax = html ... co robię źle?
Karthick
2
Z mojego doświadczenia wynika, że ​​to podejście zawiedzie, jeśli podasz dokładną nazwę pliku, np .myspecialdotfile. Potrzebuje gdzieś w nim gwiazdy do pracy, nawet jeśli teoretycznie nie jest to konieczne.
RzadkoNeedy
Mam to w moim .vimrcpliku dla Dockerfiles, które mają rozszerzenia do różnych celów. autocmd BufNewFile, BufRead Dockerfile * set filetype = docker Samo użycie Dockerfile*zapobiega działaniu podświetlania składni podczas używania vi Dockerfile- dodanie odwrotnego ukośnika pozwala mu działać dla Dockerfile/ Dockerfile.somethingiDockerfilesomething
Android Control
204
:set syntax=html
Bursztyn
źródło
10
@pbr: co odpowiada dokładnie tytułowi pytania.
Skippy le Grand Gourou
2
> „traktuj rozszerzenie pliku jako plik html”
0atman
to jest to, czego szukałem :)
niken
Może pomóc wiedzieć, że uruchomienie :set syntaxzwróci aktualnie zastosowane podświetlenie plików
Ari
26

Spójrz na ten temat wiki Vim . Kilka przydatnych wskazówek:

  • Jak wspomniały inne odpowiedzi, możesz użyć polecenia vim set, aby ustawić składnię. :set syntax=<type>gdzie <type>jest coś takiego perl, html, php, itd.

  • Istnieje inny mechanizm, który może być użyty do kontrolowania podświetlania składni, nazywany filetypelub ftw skrócie. Podobna do składni, dajesz mu typ takiego: :set filetype=html. Inne typy plików są perl, phpitp

  • Czasami vim „zapomina” jakiej składni użyć, szczególnie jeśli mieszasz razem rzeczy takie jak php i html. Użyj skrótu klawiaturowego Ctrl+ L( <C-L>), aby Vim odświeżył podświetlenie.

slm
źródło
Najlepsza odpowiedź! +!
J. Allan,
17

Zauważ, że :set syntax=xmlpodświetla się poprawnie, ale wydaje się, że kończy się niepowodzeniem, gdy ktoś próbuje automatycznie wciąć plik (tj. Działa gg=G).

Kiedy przełączyłem się na :set filetype=xml, podświetlenie działało poprawnie, a plik był odpowiednio wcięty.

Daniel
źródło
14

W pliku .php (lub pliku html) możesz użyć Vim Modeline, aby wymusić pewne polecenia lub ustawienia:

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~
Ярослав Рахматуллин
źródło
2
Masz na myśli Modeline
Shammel Lee
Czasami au ...ustawienia związane ze składnią w moim ~/.vimrcsą ignorowane dla niektórych plików (prawdopodobnie z powodu zmodyfikowanych metadanych?). Oprócz kopiowania zawartości tego pliku do nowego pliku, ustawienie linii modelowej na górze tego pliku działa. Np. Dla skryptu BASH dodanie drugiej linii # vim: syntax=shpo shebang (pierwsza linia:) #!/bin/bashwydaje się działać niezawodnie. Ponieważ jest to po prostu „komentarz”, po prostu umieszczam obie linie w moim sbbfragmencie („shebang bash”).
Victoria Stuart
13

Aby było to automatyczne, dodaj tę linię do ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

Jeśli chcesz to zrobić tylko dla bieżącego pliku, wpisz:

:set filetype=html

Możesz również zastąpić syntaxzamiast filetype, ale filetypewpływa na więcej rzeczy niżsyntax (w tym podświetlanie składni, reguły wcięć i wtyczki), więc ogólnie powinieneś używać, filetypechyba że chcesz tylko wpłynąć syntax.

wisbucky
źródło