2012-07-26 11 views
48

Pracuję nad projektem Symfony2, który używa Twig, a typami plików są myfile.html.twig. Vim nie wykrywa automatycznie podświetlania składni i nie ma zastosowania. Po otwarciu pliku mogę użyć :set syntax=HTML, ale jest to uciążliwe podczas przeskakiwania między plikami.vim: persistent: ustawić składnię dla danego typu pliku?

Czy istnieje sposób na trwałe ustawienie podświetlania składni dla określonego typu pliku w vim?

Odpowiedz

71

Można użyć autocmd aby to osiągnąć, tj .:

autocmd BufNewFile,BufRead *.html.twig set syntax=html 

powinno działać.

+2

Znajomy właśnie to wskazał mi. Ustaw typ pliku: 'au BufRead, BufNewFile * .html.twig set filetype = twig' Ustawia składnię:' au BufRead, BufNewFile * .html.twig ustawia składnię = HTML' – Bendihossan

+14

Proponuję wstawić tę linię do Plik '~/.vim/ftdetect/html.twig.vim' (powinieneś go utworzyć), który jest właściwym miejscem dla takich autokomend. – xaizek

+0

@xaizek Rozumiem, że jest to zalecane, ale czy wiesz, dlaczego to nie działa, jeśli wstawię '~/.vimrc' zamiast' ~/.vim/ftdetect/'? –

6
au BufNewFile,BufRead,BufReadPost *.twig set syntax=HTML 

I dodaj tę linię do ~/.vimrc, aby ustawienia stały się trwałe.

1

wiem, że to nie bezpośrednio odpowiedzieć na pytanie, jednak odpowiedź na pytanie intencji, która ma dostać podświetlanie składni pracy z gałązką/Symfony 2

Proponuję sprawdzić https://github.com/beyondwords/vim-twig (nie moje) , który stanowi:

  • podświetlanie składni dla pliku * .html.twig,
  • wykrywanie typu pliku na takie same, a
  • typ pliku wtyczki, dzięki czemu można modyfikować różne ustawienia wymagane podczas Edycja plików * .html.twig

Mam nadzieję, że to pomoże

16

Dodaj jedną z poniższych linii do listy .vimrc

" Set the type for the file type and override if file type 
" already has detected 
au BufRead,BufNewFile *.html.twig set filetype=html 

LUB

" Set the type for the file type but do NOT override if file type 
" already has detected 
au BufRead,BufNewFile *.html.twig setfiletype=html 
+1

To jest lepsza ogólna odpowiedź niż akceptowana.Jeśli vim nie może wykryć typu pliku (i automatycznie zapewnia podświetlanie składni), lepiej ustawić typ pliku niż samą składnię pliku. – mrfred

+1

'setfiletype' powinno być' ustawione filetype' Przynajmniej tak mogłem sprawić, żeby działało –

0

Jest to najprostsza sprawa. Zwykle do określenia składni mogą należeć zaawansowane funkcje. Niestety mogą działać nieprawidłowo. Jeśli masz prosty przypadek, gdy algorytm daje błąd yum, musisz wykluczyć rozszerzenie z jednego i napisać osobno dla tego przypadku. Na przykład zawsze otrzymuję składnię vmasm dla plików mac. Rzeczywiście jest to czysty plik makr GNU Asembler. Muszę więc ręcznie zmienić składnię komend: set składnia = asm za każdym razem po otwarciu tego pliku do edycji. Ale po zakończeniu procedury powyższa definicja składni jest właściwa.

Powiązane problemy