Kein Syntax-Highlight für MD-Dateien?

15

Vim hebt .markdownDateien ordnungsgemäß hervor , scheint jedoch mit .mdDateitypen nicht vertraut zu sein. Ein Kommentar zu der Frage /programming/10964681 scheint zu implizieren, dass dies .mddie falsche Dateierweiterung für Markdown-Dateien ist. Ich bin ein bisschen verwirrt.

Ist .mddie falsche erweiterung Wenn nicht, warum hebt Vim die Syntax nicht hervor?

Vim-Version: 7.4

krystah
quelle
Ich habe Syntax-Hervorhebung in .md7.3. Könnte eine Konfigurationsentscheidung sein. Dies ist GNU / Linux Debian Wheezy.
14.
1
"Ist .mddie falsche Erweiterung?" Der Schöpfer von Markdown hat in letzter Zeit genau dieses Thema kommentiert .
Mike Seplowitz

Antworten:

12

Analyse

In $VIMRUNTIME/filetype.vimfinden Sie Folgendes:

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

Wird also nur README.mdals Markdown erkannt. Bei der Suche nach kann ein Grund in derselben Datei gefunden werden*.md

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

Erläuterung

Im Gegensatz zu MIME-Typen (bei denen eine Registrierung vorhanden ist) sind Dateierweiterungen nicht standardisiert, und (insbesondere bei kurzen) überschneiden sich mehrere mögliche Bedeutungen. Es liegt an Ihnen, zu entscheiden, wie Sie mit ihnen umgehen möchten. Wenn es wahrscheinlicher ist, dass foo.mdMarkdown-Datei als Modula 2-Quellcode bedeutet, überschreiben Sie einfach die Standardeinstellung von Vim, z. B. über

au BufNewFile,BufRead *.md  setf markdown

in ~/.vim/ftdetect/markdown.vim, oder wie beschrieben in :help new-filetype.

Ingo Karkat
quelle
9

Das

autocmd BufRead,BufNew *.md setf markdown

In Vim 7.4 funktionierte ich nicht, daher musste ich die "alte" traditionelle Methode zum Festlegen des Dateityps verwenden:

autocmd BufRead,BufNew *.md set filetype=markdown

und dies hebt die *.mdDateien korrekt hervor.

Patryk
quelle
3
Das ist das, was du willst. Die Top-Antworten funktionieren nicht.
Michael Fox
8

Fügen Sie diese Zeilen hinzu zu ~/.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
quelle
1
Warum den Dateityp für jeden Eintrag im Puffer neu festlegen? Die kanonische Menge von ftdetect-Ereignissen ist BufNewFile,BufRead, und das sollte auch hier ausreichen.
Ingo Karkat
1

Versuchen Sie, die Datei mit .markdown zu beenden - es kann lange dauern, aber das ist der Trick für mich.

Billy McCloskey
quelle
Ja, das funktioniert. Wenn es sich bei .mdDateien jedoch um Markdown-Dateien handelt, möchte ich Vim dazu bringen, ordnungsgemäß damit zu spielen! GitHub README wird ebenfalls verwendet .md.
Kristah
Du kannst es auch .markdownmit GitHub benutzen . Verwenden Sie auf jeden Fall entweder .mdoder, .markdownweil die anderen weniger unterstützt werden.
nyuszika7h