Bagaimana cara memaksa vim untuk menyorot file sebagai html?

120

Bagaimana cara mengatur penyorotan sintaks vim untuk memperlakukan ekstensi file sebagai file html?

Saya menggunakan template ez, jadi ekstensi file-nya adalah .ezt. Tetapi banyak dari itu adalah kode html biasa.

Karthick
sumber

Jawaban:

109

Anda juga dapat memasukkan ini ke .vimrc Anda:

au BufReadPost *.ezt set syntax=html
Benoit
sumber
E216: Tidak ada grup atau acara seperti itu: BufLoad * .ezt set syntax = html ... apa yang saya lakukan salah?
Karthick
2
Dalam pengalaman saya, pendekatan ini akan gagal jika Anda memberikan nama file yang tepat misalnya .myspecialdotfile. Itu membutuhkan bintang di dalamnya di suatu tempat untuk bekerja, meskipun secara teoritis tidak perlu.
JarangNeedy
Saya memiliki ini di .vimrcfile saya untuk Dockerfiles yang memiliki ekstensi untuk tujuan yang berbeda. autocmd BufNewFile, BufRead Dockerfile * set filetype = buruh pelabuhan Hanya menggunakan Dockerfile*mencegah penyorotan sintaks agar tidak bekerja saat menggunakan vi Dockerfile- menambahkan garis miring terbalik memungkinkannya bekerja untuk Dockerfile/ Dockerfile.somethingdanDockerfilesomething
Kontrol Android
204
:set syntax=html
Amber
sumber
10
@pbr: yang menjawab persis judul pertanyaan.
Skippy le Grand Gourou
2
> "perlakukan ekstensi file sebagai file html"
0atman
ini yang saya cari :)
niken
Mungkin membantu untuk mengetahui bahwa menjalankan :set syntaxakan mengembalikan penyorotan file yang saat ini diterapkan
Ari
26

Lihatlah topik wiki Vim ini . Beberapa tip berguna:

  • Seperti jawaban lain yang telah disebutkan, Anda dapat menggunakan perintah set vim untuk mengatur sintaks. :set syntax=<type>di mana <type>adalah sesuatu seperti perl, html, php, dll

  • Ada mekanisme lain yang dapat digunakan untuk mengontrol penyorotan sintaks yang disebut filetype, atau ftdisingkat. Mirip dengan sintaks, Anda memberikan jenis seperti ini: :set filetype=html. Jenis berkas lainnya adalah perl, php, dll

  • Terkadang vim "lupa" sintaks apa yang digunakan, terutama jika Anda menggabungkan hal-hal seperti php dan html. Gunakan pintasan keyboard Ctrl+ L( <C-L>) untuk mendapatkan vim untuk menyegarkan penyorotan.

slm
sumber
Jawaban Terbaik! +!
J. Allan
17

Perhatikan bahwa :set syntax=xmlmenyoroti dengan benar tetapi tampaknya gagal ketika seseorang mencoba untuk autoindent file (yaitu berjalan gg=G).

Ketika saya beralih ke :set filetype=xml, penyorotan berfungsi dengan baik dan file menjorok dengan benar.

Daniel
sumber
14

Dalam file .php (atau file html), Anda dapat menggunakan Vim Modeline untuk memaksa perintah atau pengaturan tertentu:

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~
Ярослав Рахматуллин
sumber
2
Maksud Anda Modeline
Shammel Lee
Terkadang au ...pengaturan terkait sintaks di saya ~/.vimrcdiabaikan untuk file tertentu (mungkin karena metadata yang dimodifikasi?). Selain menyalin konten file itu ke file baru, pengaturan modeline di bagian atas file itu berfungsi. Misalnya, untuk skrip BASH, menambahkan baris kedua, # vim: syntax=shsetelah shebang (baris pertama :) #!/bin/bashtampaknya berfungsi, andal. Karena pada dasarnya ini adalah "komentar", saya hanya menyertakan kedua baris di sbbcuplikan ("shebang bash") saya.
Victoria Stuart
13

Untuk membuatnya otomatis, tambahkan baris ini ke ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

Jika Anda hanya ingin melakukannya untuk file saat ini, ketik:

:set filetype=html

Anda juga dapat mengganti syntaxalih-alih filetype, tetapi filetypememengaruhi lebih banyak hal daripadasyntax (termasuk penyorotan sintaks, aturan indentasi, dan plugin), jadi umumnya Anda harus menggunakan filetypekecuali Anda hanya ingin memengaruhi syntax.

bijak
sumber