У файлах .md немає синтаксису?


15

Vim правильно виділяє .markdownфайли, але це видається незнайомим файлами .md. У коментарі до питання /programming/10964681, мабуть, випливає, що .mdнеправильне розширення файлу, яке слід використовувати для файлів розмітки. Я трохи розгублений.

Чи .mdнеправильне розширення? Якщо ні, то чому Vim не виділяє свій синтаксис?

Версія Vim: 7.4


У мене є виділення синтаксису у .mdвикористанні 7.3. Можливо рішення конфігурації. Це GNU / Linux Debian Wheezy.
174140

1
" .mdНевірне розширення?" Творець Маркдаун нещодавно прокоментував цю саму тему.
Майк Сепловіц

Відповіді:


12

Аналіз

У $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.


9

The

autocmd BufRead,BufNew *.md setf markdown

не працював для мене на vim 7.4, тому мені довелося використовувати «старий» традиційний спосіб встановлення файлів:

autocmd BufRead,BufNew *.md set filetype=markdown

і це *.mdправильно виділяє файли.


3
Це той, кого ти хочеш. Найкращі відповіді не діють.
Майкл Фокс

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

1
Навіщо повторно встановлювати тип файлу для кожного запису буфера? Канонічний набір ftdetect подій є BufNewFile,BufRead, і цього має бути достатньо і тут.
Інго Каркат

1

Спробуйте закінчити файл .markdown - це може бути довгим, але це для мене хитрість.


Так, це працює. Однак якщо.md файли є файлами розмітки, я маю намір змусити Vim грати належним чином з ними! Використання GitHub README .mdтакож.
krystah

Ви також можете користуватися .markdownGitHub. Так чи інакше, використовуйте .mdабо те, .markdownщо інші менш підтримуються.
nyuszika7h
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.