¿No hay resaltado de sintaxis en los archivos .md?

15

Vim resalta correctamente los .markdownarchivos, pero parece no estar familiarizado con los .mdtipos de archivos. Un comentario en la pregunta /programming/10964681 parece implicar que .mdes una extensión de archivo incorrecta para usar en los archivos de rebajas. Estoy un poco confundido.

¿Es .mdla extensión incorrecta? Si no, ¿por qué Vim no resalta su sintaxis?

Versión de Vim: 7.4

krystah
fuente
Tengo resaltado de sintaxis al .mdusar 7.3. Podría ser una decisión de configuración. Esto es GNU / Linux Debian Wheezy.
174140
1
"¿Es .mdla extensión incorrecta?" El creador de Markdown comentó sobre este mismo tema recientemente.
Mike Seplowitz

Respuestas:

12

Análisis

En $VIMRUNTIME/filetype.vim, encontrarás esto:

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

Entonces, solo README.mdse detecta como Markdown. Se puede encontrar una razón en el mismo archivo al buscar*.md

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

Explicación

A diferencia de los tipos MIME (donde existe un registro), las extensiones de archivo no están estandarizadas y (especialmente para las cortas), se superponen múltiples significados posibles. Depende de usted decidir cómo quiere que se manejen. Si es mucho más probable que eso foo.mdsignifique un archivo Markdown que el código fuente de Modula 2, simplemente anule el valor predeterminado de Vim, por ejemplo, a través de

au BufNewFile,BufRead *.md  setf markdown

en ~/.vim/ftdetect/markdown.vim, o como se describe en :help new-filetype.

Ingo Karkat
fuente
9

los

autocmd BufRead,BufNew *.md setf markdown

no funcionó para mí en vim 7.4, así que tuve que usar la forma tradicional 'antigua' de configurar el tipo de archivo:

autocmd BufRead,BufNew *.md set filetype=markdown

y esto resalta los *.mdarchivos correctamente.

Patryk
fuente
3
Este es el que tu quieres. Las mejores respuestas no funcionan.
Michael Fox
8

Agregue estas líneas a su ~/.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
fuente
1
¿Por qué volver a configurar el tipo de archivo en cada entrada del búfer? El conjunto canónico de eventos ftdetect es BufNewFile,BufRead, y eso también debería ser suficiente aquí.
Ingo Karkat
1

Intente finalizar el archivo con .markdown; puede ser largo, pero eso me sirve.

Billy McCloskey
fuente
Sí, eso es lo que funciona. Sin embargo, si los .mdarchivos son archivos de descuento, ¡tengo la intención de hacer que Vim juegue correctamente con ellos! Los usos de GitHub README .mdtambién.
krystah
De hecho, también puedes usarlo .markdowncon GitHub. De todos modos, use uno .mdo .markdownporque los otros son menos compatibles.
nyuszika7h