Kalıcı: belirli bir dosya türü için sözdizimi ayarla


103

Twig kullanan bir Symfony2 projesi üzerinde çalışıyorum ve dosya türleri öyle myfile.html.twig. Vim, sözdizimi vurgulamasını otomatik olarak algılamaz ve bu nedenle hiçbirini uygulamaz. :set syntax=HTMLDosyayı açtıktan sonra kullanabilirim ama bu dosyalar arasında geçiş yaparken bir acı.

Vim'de belirli bir dosya türü için sözdizimi vurgulamasını kalıcı olarak ayarlamanın bir yolu var mı?

Yanıtlar:


114

Bunu autocmdbaşarmak için kullanabilirsiniz , yani:

augroup twig_ft
  au!
  autocmd BufNewFile,BufRead *.html.twig   set syntax=html
augroup END

Çalışmalı.


4
Az önce bir arkadaşım da bunu bana söyledi. au BufRead,BufNewFile *.html.twig set filetype=twigau BufRead,BufNewFile *.html.twig set syntax=HTML
Dosya türünü

27
Bu satırı ~/.vim/ftdetect/html.twig.vim, bu tür otomatik komutlar için doğru yer olan dosyaya koymanızı (oluşturmalısınız) öneririm .
xaizek

@xaizek Bunun tavsiye edildiğini anlıyorum, ama ~/.vimrcyerine koyarsam neden işe yaramayacağına dair bir fikriniz var ~/.vim/ftdetect/mı?
Haralan Dobrev

2
@HaralanDobrev, muhtemelen bu satırdan sonra tanımlanan başka bir otomatik komut tarafından üzerine yazılır. :autocmd BufNewFile,BufRead *.html.twigTüm kayıtlı otomatik komutları görmek için Vim'in içinde çalıştırın (ayrıca yalnızca BufNewFileve yalnızca ayrı olaylarla deneyin BufRead). Ayrıca çıktısını kontrol edin :verbose set syntax?.
xaizek

1
Bu çözümü bulmanın ne kadar kolay olduğu vim wiki'nin var olmamasını dilememe neden oluyor
Jared Beach

59

Aşağıdaki bölümlerden birini ekleyin .vimrc:

" Set the filetype based on the file's extension, overriding any
" 'filetype' that has already been set
au BufRead,BufNewFile *.html.twig set filetype=html

veya

" Set the filetype based on the file's extension, but only if
" 'filetype' has not already been set
au BufRead,BufNewFile *.html.twig setfiletype html

6
Bu, kabul edilenden daha genel bir cevaptır. Eğer vim dosyanın türünü algılayamazsa (ve otomatik olarak sözdizimi vurgulaması sağlıyorsa), dosyanın yalnızca sözdiziminden ziyade dosya türünü ayarlamak daha iyidir.
mrfred

1
setfiletypeolmalıdır set filetypeEn azından o iş yapamıyor gibi uygulayabilirsiniz
dau_sama

1
@dau_sama setfiletype=htmlgeçerli bir sözdizimi değil; Cevabı düzelttim. Cevapta belirtildiği gibi bunu not edin setfiletype htmlve set filetype=htmlfarklı şeyler yapın.
bdesham

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

Ve ~/.vimrcayarları kalıcı hale getirmek için bu satırı ekleyin .


2

Bunun soruyu doğrudan yanıtlamadığını biliyorum, ancak bu sorunun amacına cevap veriyor, bu da Twig / Symfony 2 ile çalışırken sözdizimi vurgulama elde etmektir.

Https://github.com/beyondwords/vim-twig (benim değil) göz atmanızı öneririm , bu da şunları sağlar:

  • * .html.twig için sözdizimi vurgulama dosyası,
  • aynı dosya türü tespiti ve
  • * .html.twig dosyalarını düzenlerken çeşitli ayarları gerektiği gibi değiştirmenize izin veren dosya türü eklentisi

Umarım bu yardımcı olur

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.