15

Vim правильно выделяет файлы .markdown , но, похоже, не знаком с типами файлов .md . Комментарий к вопросу https://stackoverflow.com/questions/10964681, по- видимому, подразумевает, что .md - это неправильное расширение файла, используемое для файлов уценки. Я немного смущен.

Является ли .md неправильным расширением? Если нет, почему Vim не выделяет его синтаксис?

Версия Vim: 7.4

4 ответа4

11

Анализ

В $VIMRUNTIME/filetype.vim вы найдете это:

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

Таким образом, только README.md определяется как Markdown. Одна причина может быть найдена в том же файле при поиске *.md

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

объяснение

В отличие от типов MIME (где существует реестр), расширения файлов не стандартизированы, и (особенно для коротких) несколько возможных значений перекрываются. Вам решать, как вы хотите, чтобы они обрабатывались. Если гораздо более вероятно, что foo.md означает файл Markdown, чем исходный код Modula 2, просто переопределите значение по умолчанию Vim, например, через

au BufNewFile,BufRead *.md  setf markdown

в ~/.vim/ftdetect/markdown.vim или как описано в :help new-filetype .

8

Добавьте эти строки в ваш ~/.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
8

The

autocmd BufRead,BufNew *.md setf markdown

я не работал на vim 7.4, поэтому мне пришлось использовать «старый» традиционный способ установки типа файла:

autocmd BufRead,BufNew *.md set filetype=markdown

и это правильно выделяет файлы *.md .

1

Попробуйте завершить файл с помощью .markdown - он может быть длинным, но это помогает мне.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .