Tidak ada highlight sintaks pada file .md?

15

Vim menyoroti .markdownfile dengan benar , tetapi tampaknya tidak terbiasa dengan .mdtipe file. Sebuah komentar pada pertanyaan https://stackoverflow.com/questions/10964681 tampaknya menyiratkan bahwa itu .mdadalah ekstensi file yang salah untuk digunakan untuk file penurunan harga. Saya sedikit bingung.

Apakah .mdekstensi salah? Jika tidak, mengapa Vim tidak menyoroti sintaksnya?

Versi Vim: 7.4

krystah
sumber
Saya memiliki highlight sintaks dalam .mdmenggunakan 7.3. Bisa jadi keputusan konfigurasi. Ini adalah GNU / Linux Debian Wheezy.
john
1
"Apakah .mdekstensi yang salah?" Pencipta Markdown mengomentari topik ini baru-baru ini.
Mike Seplowitz

Jawaban:

12

Analisis

Di $VIMRUNTIME/filetype.vim, Anda akan menemukan ini:

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown

Jadi, hanya README.mdterdeteksi sebagai penurunan harga. Salah satu alasan dapat ditemukan dalam file yang sama saat mencari*.md

" Modula 2
au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2

Penjelasan

Tidak seperti jenis MIME (di mana ada registri), ekstensi file tidak terstandarisasi, dan (terutama untuk yang pendek), banyak kemungkinan makna tumpang tindih. Terserah Anda untuk memutuskan bagaimana Anda ingin mereka ditangani. Jika jauh lebih mungkin itu foo.mdberarti file Penurunan harga daripada kode sumber Modula 2, cukup timpa default Vim, misalnya via

au BufNewFile,BufRead *.md  setf markdown

di ~/.vim/ftdetect/markdown.vim, atau seperti yang dijelaskan dalam :help new-filetype.

Ingo Karkat
sumber
9

Itu

autocmd BufRead,BufNew *.md setf markdown

tidak berfungsi untuk saya pada vim 7.4 jadi saya harus menggunakan cara tradisional 'lama' untuk menetapkan tipe file:

autocmd BufRead,BufNew *.md set filetype=markdown

dan ini menyoroti *.mdfile dengan benar.

Patryk
sumber
3
Ini yang kamu inginkan. Jawaban teratas tidak berfungsi.
Michael Fox
8

Tambahkan baris ini ke ~/.vimrc:

augroup markdown

    " remove previous autocmds
    autocmd!

    " set every new or read *.md buffer to use the markdown filetype 
    autocmd BufRead,BufNew *.md setf markdown

augroup END
romainl
sumber
1
Mengapa mengatur ulang filetype pada setiap entri buffer? Himpunan kanonik peristiwa fectetect adalah BufNewFile,BufRead, dan itu harus cukup di sini juga.
Ingo Karkat
1

Coba akhiri file dengan .markdown - mungkin panjang, tetapi itu cukup membantu saya.

Billy McCloskey
sumber
Ya, itulah yang berhasil. Namun, jika .mdfile adalah file penurunan harga, saya bermaksud membuat Vim bermain dengan benar! GitHub juga menggunakan README .md.
krystah
Anda sebenarnya bisa menggunakan .markdowndengan GitHub juga. Bagaimanapun, gunakan salah satu .mdatau .markdownkarena yang lain kurang didukung secara luas.
nyuszika7h