Brak podświetlenia składni plików .md?

15

Vim poprawnie podświetla .markdownpliki, ale wydaje się, że nie zna .mdtypów plików. Komentarz do pytania na /programming/10964681 wydaje się sugerować, że .mdjest to niewłaściwe rozszerzenie pliku, którego można użyć w przypadku plików przeceny. Jestem nieco zdezorientowany.

Czy .mdzłe rozszerzenie? Jeśli nie, to dlaczego Vim nie podkreśla swojej składni?

Wersja Vima: 7.4

krystah
źródło
Mam wyróżnianie składni .mdprzy użyciu 7.3. Może to być decyzja o konfiguracji. To jest GNU / Linux Debian Wheezy.
174140
1
„Czy .mdnieprawidłowe rozszerzenie?” Twórca Markdown skomentował ostatnio ten temat.
Mike Seplowitz

Odpowiedzi:

12

Analiza

W $VIMRUNTIME/filetype.vimznajdziesz poniżej:

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

Tak więc README.mdwykrywany jest tylko Markdown. Podczas wyszukiwania można znaleźć jeden powód w tym samym pliku*.md

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

Wyjaśnienie

W przeciwieństwie do typów MIME (w których istnieje rejestr) rozszerzenia plików nie są znormalizowane i (szczególnie w przypadku krótkich) wiele możliwych znaczeń nakłada się. Od Ciebie zależy, jak chcesz je obsłużyć. Jeśli jest to o wiele bardziej prawdopodobne, foo.mdoznacza to, że plik Markdown niż kod źródłowy Modula 2, po prostu zastąp domyślny Vim, np. Via

au BufNewFile,BufRead *.md  setf markdown

w ~/.vim/ftdetect/markdown.vimlub jak opisano w :help new-filetype.

Ingo Karkat
źródło
9

The

autocmd BufRead,BufNew *.md setf markdown

nie działało dla mnie w vimie 7.4, więc musiałem użyć „starego” tradycyjnego sposobu ustawiania typu pliku:

autocmd BufRead,BufNew *.md set filetype=markdown

i to *.mdpoprawnie podkreśla pliki.

Patryk
źródło
3
To jest to, czego chcesz. Najlepsze odpowiedzi nie działają.
Michael Fox
8

Dodaj te linie do ~/.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
źródło
1
Po co ponownie ustawiać typ pliku dla każdego wpisu bufora? Kanoniczny zestaw zdarzeń ftdetect jest BufNewFile,BufReadi to też powinno wystarczyć.
Ingo Karkat
1

Spróbuj zakończyć plik z .markdown - może być długi, ale to załatwia sprawę.

Billy McCloskey
źródło
Tak, właśnie to działa. Jeśli jednak .mdpliki są plikami zniżkowymi, zamierzam sprawić, aby Vim grał z nimi poprawnie! Zastosowania GitHub README .mdrównież.
krystah
Możesz także używać .markdownGitHub. W każdym razie użyj jednego .mdlub .markdownponieważ inne są mniej obsługiwane.
nyuszika7h