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.

Odpowiedzi:


109

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

au BufReadPost *.ezt set syntax=html

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

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.


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.


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()
 ~
 ~

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.