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.

Jawaban:


109

Anda juga dapat memasukkan ini ke .vimrc Anda:

au BufReadPost *.ezt set syntax=html

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

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.


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.


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()
 ~
 ~

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.