Vim'i bir dosyayı html olarak sözdizimi-vurgulamaya nasıl zorlayabilirim?


120

Bir dosya uzantısını html dosyası olarak ele almak için vim'in sözdizimi vurgulamasını nasıl ayarlayabilirim?

Ez şablonu kullanıyorum, bu yüzden dosyanın uzantısı .ezt. Ama çoğu normal html kodudur.

Yanıtlar:


109

Bunu ayrıca .vimrc dosyanıza da koyabilirsiniz:

au BufReadPost *.ezt set syntax=html

E216: Böyle bir grup veya olay yok: BufLoad * .ezt sözdizimi = html ayarla ... Neyi yanlış yapıyorum?
Karthick

2
Tecrübelerime göre, örneğin tam bir dosya adı verirseniz bu yaklaşım başarısız olacaktır .myspecialdotfile. Teorik olarak gerekli olmasa bile, çalışacak bir yerde bir yıldıza ihtiyacı var.
SeldomNeedy

Bunu, .vimrcfarklı amaçlar için uzantılara sahip Dockerfiles dosyamda bulabilirsiniz. autocmd BufNewFile, BufRead Dockerfile * set filetype = docker Sadece kullanırken Dockerfile*sözdizimi vurgulamanın çalışmasını engeller vi Dockerfile- ters eğik çizgi eklemek, Dockerfile/ Dockerfile.somethingveDockerfilesomething
Android Kontrolü için

204
:set syntax=html

10
@pbr: tam olarak soru başlığını yanıtlayan.
Skippy le Grand Gourou

2
> "bir dosya uzantısını html dosyası olarak ele alın"
0atman

aradığım
buydu

Çalıştırmanın o :set syntaxanda uygulanan dosya vurgulamasını döndüreceğini bilmenin yardımı olabilir
Ari,

26

Bu Vim wikia konusuna bir göz atın . Bazı yararlı ipuçları:

  • Diğer yanıtların da bahsettiği gibi, sözdizimini ayarlamak için vim set komutunu kullanabilirsiniz. :set syntax=<type>nerede <type>gibi bir şey perl, html, phpvb

  • Sözdizimi vurgulamasını kontrol etmek için filetypeveya ftkısaca denen başka bir mekanizma vardır . Sözdizimine benzer, bunu böyle bir tür vermek: :set filetype=html. Olan diğer dosya türleri perl, phpvb

  • Bazen vim, özellikle php ve html gibi şeyleri karıştırıyorsanız, hangi sözdiziminin kullanılacağını "unutur". Vim'i vurgulamayı yenilemek için Ctrl+ L( <C-L>) klavye kısayolunu kullanın .


En iyi cevap! +!
J. Allan

17

:set syntax=xmlDüzgün vurgulandığını, ancak dosya otomatik girintileme girişiminde bulunduğunda (yani çalışırken gg=G) başarısız göründüğünü unutmayın .

Ben getirilince :set filetype=xml, vurgulama düzgün çalıştı ve dosyası düzgün girintili.


14

Bir .php dosyasında (veya bir html dosyasında), belirli komutları veya ayarları zorlamak için bir Vim Modeline kullanabilirsiniz :

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~

2
Modeline demek
istiyorsun

Bazen, bazı dosyalar için sözdizimiyle ilgili au ...ayarlar ~/.vimrcgöz ardı edilir (muhtemelen değiştirilmiş meta veriler nedeniyle mi?). Bu dosya içeriğini yeni bir dosyaya kopyalamaktan başka, o dosyanın en üstünde bir modelin ayarlamak işe yarar. Örneğin, bir BASH betiği için, # vim: syntax=shshebang'dan sonra ikinci bir satır eklemek (ilk satır:) #!/bin/bashgüvenilir bir şekilde çalışıyor gibi görünüyor. Temelde bir "yorum" olduğu için, sbb("shebang bash") pasajıma her iki satırı da dahil ettim .
Victoria Stuart

13

Otomatik hale getirmek için bu satırı şunlara ekleyin ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

Sadece mevcut dosya için yapmak istiyorsanız, şunu yazın:

:set filetype=html

Bunun yerine syntaxyerine de koyabilirsiniz filetype, ancak bundan filetypedaha fazla şeyi etkilersyntax (sözdizimi vurgulama, girinti kuralları ve eklentiler dahil), bu nedenle genellikle filetypeyalnızca etkilemek istemediğiniz sürece kullanmalısınız syntax.

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.