Jak sprawdzić, który plik składni jest używany?

50

Vim w zabawny sposób podkreśla składnię mojego pliku i chcę wiedzieć, który plik składni jest odpowiedzialny za to zachowanie. Jak dowiedzieć się, jakie pliki składniowe załadował vim?

Edward Z. Yang
źródło

Odpowiedzi:

39

Aby dowiedzieć się, które pliki Vim rzeczywiście załadował, uruchom

:scriptnames
garyjohn
źródło
To się przydaje. Oto coś, czego nie jestem pewien: jeśli plik składni pojawi się na tej liście, czy jest gwarantowane, że plik składni jest „aktywny”? Widzę tu sporo plików składniowych.
Edward Z. Yang,
7
Zasadniczo tylko ostatni z wymienionych jest „aktywny”, a nawet może nie być, jeśli wyłączyłeś podświetlanie składni. Aby zobaczyć aktualnie obowiązującą składnię, wykonaj :echo b:current_syntax. Aby zobaczyć aktualnie stosowane elementy składni, wykonaj czynności sugerowane przez Ingo i wykonaj je :syntax list. To ostatnie może pomóc, jeśli działają elementy składni z więcej niż jednego pliku, jak zauważył Ingo.
garyjohn
1
W systemie Mac OS XI zmodyfikowano /usr/share/vim/vim73/filetype.vim. Po użyciu powyższego polecenia zdałem sobie sprawę, że używa on wersji MacVima pod adresem ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim. Jeśli masz zainstalowany MacVim, upewnij się, że zmodyfikowałeś poprawny plik.
echamber
1
Możesz załadować dwa pliki składniowe o tej samej nazwie. Na przykład vim jest dostarczany z podświetlaniem składni dla ColdFusion ( /usr/share/vim/vim81/syntax/cf.vimdla mnie). Zainstalowałem niestandardową wersję cf.vim, ponieważ standardowa jest datowana. :scriptnamespokazuje oba pliki. Wartość domyślna jest niższa na liście skryptów; jednak ten pierwszy jest używany. Jeśli spojrzysz /usr/share/vim/vim81/syntax/cf.vim, jest strażnik if exists("b:current_syntax") finish endif. Tak więc w moim przypadku scriptnamesbyło to pomocne, ale musiałem kopać nieco głębiej.
avejidah
31

Składnia bieżącego bufora może być przeszukiwana poprzez

:setlocal syntax?

Zwykle (ale niekoniecznie) odpowiada typowi pliku bufora ( :setlocal filetype?).

Aby uzyskać głębsze spojrzenie,

:syntax list

pokazuje wszystkie definicje składniowe (niektóre składnie (CAN) to składnie inny język za np javama htmldla Javadoc komentarz znaczników).

Ingo Karkat
źródło
Właśnie tego szukałem na podstawie tytułu pytania OP. OP oczywiście wyjaśnia w opisie, że szuka rzeczywistego pliku składni, ale doceniam, że zostawiłeś to tutaj, ponieważ jest to jedna z pierwszych odpowiedzi w wyszukiwarkach.
verboze
4

Możesz zobaczyć, jakie typy plików są obecnie używane i przez

:verbose set ft ?

Wtyczka obsługująca typ pliku najprawdopodobniej znajduje się w

:e $VIMRUNTIME\ftplugin
Lieven Keersmaekers
źródło