Bagaimana saya tahu file sintaks apa yang digunakan?

50

Vim sintaksis menyoroti file saya dengan cara yang lucu, dan saya ingin tahu apa file sintaks bertanggung jawab atas perilaku ini. Bagaimana cara mengetahui file sintaks yang telah dimuat vim?

Edward Z. Yang
sumber

Jawaban:

39

Untuk mencari tahu file mana yang sebenarnya dimuat Vim, jalankan

:scriptnames
garyjohn
sumber
Itu berguna. Sekarang, ini adalah sesuatu yang saya tidak yakin tentang: jika file sintaks muncul di daftar ini, apakah dijamin bahwa file sintaks "aktif"? Saya dapat melihat beberapa file sintaks di sini.
Edward Z. Yang
7
Secara umum, hanya yang terakhir terdaftar adalah "aktif", dan bahkan mungkin tidak jika Anda telah menonaktifkan sintaks. Untuk melihat sintaks yang sedang berlaku, jalankan :echo b:current_syntax. Untuk melihat item sintaks yang sedang berlaku, lakukan seperti yang disarankan Ingo dan jalankan :syntax list. Yang terakhir dapat membantu jika item sintaks dari lebih dari satu file sintaks berlaku, seperti yang dicatat Ingo.
garyjohn
1
Pada Mac OS XI memodifikasi /usr/share/vim/vim73/filetype.vim. Setelah menggunakan perintah di atas saya menyadari itu menggunakan versi MacVim di ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim. Jika Anda menginstal MacVim, pastikan Anda memodifikasi file yang benar.
Echamber
1
Anda mungkin memiliki dua file sintaks yang dimuat yang memiliki nama yang sama. Misalnya, vim dikirimkan dengan penyorotan sintaks untuk ColdFusion, ( /usr/share/vim/vim81/syntax/cf.vimuntuk saya). Saya memasang custom cf.vim karena yang standar adalah tanggal. :scriptnamesmenunjukkan kedua file. Defaultnya lebih rendah pada daftar skrip; Namun, yang pertama sedang digunakan. Jika Anda melihat /usr/share/vim/vim81/syntax/cf.vim, ada seorang penjaga if exists("b:current_syntax") finish endif. Jadi, dalam kasus saya, scriptnamesitu sangat membantu, tetapi saya harus menggali lebih dalam.
avejidah
31

Sintaks untuk buffer saat ini dapat ditanyakan melalui

:setlocal syntax?

Biasanya (tetapi tidak harus) sesuai dengan tipe file buffer ( :setlocal filetype?).

Untuk melihat lebih dalam,

:syntax list

memperlihatkan semua definisi sintaks (beberapa sintaks (dapat) menyertakan sintaksis bahasa lain, misalnya yang javadimiliki htmluntuk marka komentar JavaDoc).

Ingo Karkat
sumber
Inilah yang saya cari berdasarkan judul pertanyaan OP. OP tentu saja menjelaskan dalam deskripsi dia mencari file sintaksis yang sebenarnya, tetapi saya menghargai Anda meninggalkan ini di sini karena ini adalah salah satu jawaban pertama di mesin pencari.
verboze
4

Anda dapat melihat jenis file apa yang saat ini digunakan dan oleh

:verbose set ft ?

Plugin yang menangani jenis file kemungkinan besar terletak di

:e $VIMRUNTIME\ftplugin
Letnan Keersmaekers
sumber