Nenhum destaque de sintaxe nos arquivos .md?

15

O Vim destaca corretamente .markdown arquivos, mas parece não familiarizado com os .mdtipos de arquivos. Um comentário na pergunta /programming/10964681 parece sugerir que essa .mdé a extensão de arquivo incorreta a ser usada nos arquivos de remarcação. Estou um pouco confuso.

A .mdextensão está errada? Caso contrário, por que o Vim não está destacando sua sintaxe?

Versão Vim: 7.4

Krystah
fonte
Eu tenho destaque de sintaxe no .md7.3. Pode ser uma decisão de configuração. Este é o Debian Wheezy do GNU / Linux.
174140
1
"A .mdextensão está errada?" O criador do Markdown comentou esse mesmo tópico recentemente.
Mike Seplowitz

Respostas:

12

Análise

Em $VIMRUNTIME/filetype.vim, você encontrará o seguinte:

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

Portanto, apenas README.mdé detectado como Markdown. Um motivo pode ser encontrado no mesmo arquivo ao procurar por*.md

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

Explicação

Diferentemente dos tipos MIME (onde existe um registro), as extensões de arquivo não são padronizadas e (especialmente as curtas), vários significados possíveis se sobrepõem. Cabe a você decidir como deseja que eles sejam tratados. Se for muito mais provável que isso foo.mdsignifique arquivo Markdown do que o código-fonte do Modula 2, substitua o padrão do Vim, por exemplo, via

au BufNewFile,BufRead *.md  setf markdown

em ~/.vim/ftdetect/markdown.vim, ou conforme descrito em :help new-filetype.

Ingo Karkat
fonte
9

o

autocmd BufRead,BufNew *.md setf markdown

não funcionou para mim no vim 7.4, então tive que usar a maneira tradicional 'antiga' de definir o tipo de arquivo:

autocmd BufRead,BufNew *.md set filetype=markdown

e isso destaca os *.mdarquivos corretamente.

Patryk
fonte
3
Este é o que você quer. As principais respostas não funcionam.
Michael Fox
8

Adicione estas linhas ao seu ~/.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
fonte
1
Por que redefinir o tipo de arquivo em cada entrada do buffer? O conjunto canônico de eventos detectados é BufNewFile,BufRead, e isso deve ser suficiente aqui também.
Ingo Karkat
1

Tente finalizar o arquivo com .markdown - pode demorar, mas esse é o truque para mim.

Billy McCloskey
fonte
Sim, é isso que funciona. No entanto, se os .mdarquivos são de remarcação, pretendo fazer com que o Vim seja reproduzido corretamente com eles! Os usos do GitHub README .mdtambém.
precisa saber é o seguinte
Você também pode usar o .markdownGitHub. De qualquer forma, use um .mdou .markdownporque os outros são menos suportados.
nyuszika7h