Không có cú pháp tô sáng trên các tập tin .md?


15

Vim làm nổi bật .markdowncác tập tin đúng cách , nhưng có vẻ không quen thuộc với .mdfiletypes. Một nhận xét về câu hỏi /programming/10964681 dường như ngụ ý rằng đó .mdlà phần mở rộng tệp sai để sử dụng cho các tệp markdown. Tôi hơi bối rối.

.mdphần mở rộng sai? Nếu không, tại sao Vim không làm nổi bật cú pháp của nó?

Phiên bản Vim: 7.4


Tôi có đánh dấu cú pháp trong .mdviệc sử dụng 7.3. Có thể là một quyết định cấu hình. Đây là GNU / Linux Debian Wheezy.
174140

1
"Là .mdphần mở rộng sai?" Người tạo ra Markdown đã bình luận về chính chủ đề này gần đây.
Mike Seplowitz

Câu trả lời:


12

Phân tích

Trong $VIMRUNTIME/filetype.vim, bạn sẽ tìm thấy điều này:

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

Vì vậy, chỉ README.mdđược phát hiện là Markdown. Một lý do có thể được tìm thấy trong cùng một tệp khi tìm kiếm*.md

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

Giải trình

Không giống như các loại MIME (nơi đăng ký tồn tại), phần mở rộng tệp không được tiêu chuẩn hóa và (đặc biệt đối với các loại ngắn), nhiều ý nghĩa có thể trùng lặp. Tùy bạn quyết định cách bạn muốn họ xử lý. Nếu có nhiều khả năng có foo.mdnghĩa là tệp Markdown hơn mã nguồn Modula 2, chỉ cần ghi đè mặc định của Vim, ví dụ: thông qua

au BufNewFile,BufRead *.md  setf markdown

trong ~/.vim/ftdetect/markdown.vim, hoặc như được mô tả trong :help new-filetype.


9

Các

autocmd BufRead,BufNew *.md setf markdown

không hoạt động với tôi trên vim 7.4 vì vậy tôi phải sử dụng cách thiết lập kiểu truyền thống 'cũ':

autocmd BufRead,BufNew *.md set filetype=markdown

và điều này làm nổi bật các *.mdtập tin chính xác.


3
Đây là thứ bạn muốn. Các câu trả lời hàng đầu không hoạt động.
Michael Fox

8

Thêm những dòng này vào ~/.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

1
Tại sao phải đặt lại kiểu tệp trên mỗi mục của bộ đệm? Tập hợp chính tắc của các sự kiện ftdetect là BufNewFile,BufRead, và điều đó cũng đủ ở đây.
Ingo Karkat

1

Hãy thử kết thúc tệp bằng .markdown - nó có thể dài, nhưng đó là mẹo cho tôi.


Vâng, đó là những gì hoạt động. Tuy nhiên, nếu .mdcác tệp là các tệp markdown, tôi dự định làm cho Vim chơi đúng với chúng! Công dụng của GitHub README .mdcũng vậy.
kstallah

Bạn thực sự có thể sử dụng .markdownvới GitHub. Dù sao, sử dụng một trong hai .mdhoặc .markdownvì những người khác ít được hỗ trợ rộng rãi.
nyuszika7h
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.