Pas de coloration syntaxique sur les fichiers .md?

15

Vim surligne correctement les .markdownfichiers, mais il ne semble pas familier avec les .mdtypes de fichiers. Un commentaire à la question /programming/10964681 semble impliquer qu'il .mds'agit de la mauvaise extension de fichier à utiliser pour les fichiers de démarque. Je suis un peu confus.

La .mdmauvaise extension est-elle? Sinon, pourquoi Vim ne met-il pas en évidence sa syntaxe?

Version Vim: 7.4

krystah
la source
J'ai la coloration syntaxique en .mdutilisant 7.3. Cela pourrait être une décision de configuration. Il s'agit de GNU / Linux Debian Wheezy.
174140
1
"La .mdmauvaise extension est-elle?" Le créateur de Markdown a récemment commenté ce sujet.
Mike Seplowitz du

Réponses:

12

Une analyse

Dans $VIMRUNTIME/filetype.vim, vous trouverez ceci:

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

Ainsi, seul README.mdest détecté comme Markdown. Une raison peut être trouvée dans le même fichier lors de la recherche*.md

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

Explication

Contrairement aux types MIME (où un registre existe), les extensions de fichier ne sont pas standardisées et (en particulier pour les courtes), plusieurs significations possibles se chevauchent. C'est à vous de décider comment vous souhaitez les gérer. S'il est beaucoup plus probable que cela foo.mdsignifie un fichier Markdown que le code source de Modula 2, remplacez simplement la valeur par défaut de Vim, par exemple via

au BufNewFile,BufRead *.md  setf markdown

dans ~/.vim/ftdetect/markdown.vimou comme décrit dans :help new-filetype.

Ingo Karkat
la source
9

le

autocmd BufRead,BufNew *.md setf markdown

n'a pas fonctionné pour moi sur vim 7.4, j'ai donc dû utiliser la «vieille» façon traditionnelle de définir le type de fichier:

autocmd BufRead,BufNew *.md set filetype=markdown

et cela met en évidence les *.mdfichiers correctement.

Patryk
la source
3
C'est celui que tu veux. Les meilleures réponses ne fonctionnent pas.
Michael Fox
8

Ajoutez ces lignes à votre ~/.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
la source
1
Pourquoi réinitialiser le type de fichier sur chaque entrée du tampon? L'ensemble canonique des événements ftdetect l'est BufNewFile,BufRead, et cela devrait être suffisant ici aussi.
Ingo Karkat
1

Essayez de terminer le fichier avec .markdown - il peut être long, mais cela fait l'affaire pour moi.

Billy McCloskey
la source
Ouais, c'est ça qui marche. Cependant, si les .mdfichiers sont des fichiers de démarque, j'ai l'intention de faire jouer Vim correctement avec eux! Les utilisations de GitHub README .mdégalement.
krystah
Vous pouvez également utiliser .markdownGitHub. Quoi qu'il en soit, utilisez soit .mdou .markdownparce que les autres sont moins largement pris en charge.
nyuszika7h