Откройте .md файлы как Markdown

19

Vim по умолчанию открывает все файлы .md в виде кода "modula2". Я никогда не слышал о modula2 и не планирую им пользоваться.

Как я могу сказать vim всегда обращаться foo.mdс Markdown (как если бы я печатал :set ft=markdown)?

Дверная ручка
источник
В каком распределении это происходит? Я в настоящее время работает Archlinux и .mdв настоящее время рассматривается в качестве уценки
Neikos
@Neikos Это на Ubuntu 14.04.
Ручка
на Fedora я правильно получаю синтаксис уценки для файлов .md
guido
2
На это уже отвечали на SO. Вы можете найти больше и другую информацию там.
bsmith89
3
К вашему сведению, начиная с Vim 7.4.480, *.mdфайлы распознаются как Markdown вместо modula2 по умолчанию.
fwalch

Ответы:

10

В файле filetype.vim, поставляемом с вашим дистрибутивом, вы найдете строку, которая, вероятно, похожа на эту (на моей машине она находится /usr/share/vim/vim74):

au BufNewFile,BufRead *.md,*.m2,*.mi setf modula2

Теперь это говорит vim установить тип файла как modula2, если у вашего файла такое окончание.

Чтобы переопределить это поведение, вы можете поместить такую ​​строку в свою собственную .vimrc(взято из Archlinux filetype.vim):

au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md  set ft=markdown

Редактировать:

Раньше у меня была setfфункция, которая должна быть вызвана, но, похоже, это зарезервированная функция для filetype.vimфайла.

Neikos
источник
14

В настоящее время у меня есть эта строка как уродливый хак в моем .vimrc:

autocmd BufRead *.md set ft=markdown

Мне все еще интересно, есть ли лучший способ, хотя.

Дверная ручка
источник
1
это не работает в Fedora, кажется, что определения /usr/share/vim/vim74/filetype.vim переопределяют этот параметр
guido
@ Guido, интересно, зависит ли это от того, когда вы включаете определение типа файла? Если вы добавите это autocmdпосле filetype on(с или без plugin/ indentflags), я думаю, результаты будут лучше. Не проверено, просто предположение.
Tommcdo