Nessuna evidenziazione della sintassi sui file .md?


15

Vim evidenzia correttamente i .markdownfile, ma sembra non avere familiarità con i .mdtipi di file. Un commento alla domanda /programming/10964681 sembra implicare che .mdl'estensione del file sia errata da utilizzare per i file di markdown. Sono un po 'confuso.

L' .mdestensione è sbagliata? In caso contrario, perché Vim non sta evidenziando la sua sintassi?

Versione Vim: 7.4


Ho evidenziato l'evidenziazione della sintassi .mdusando 7.3. Potrebbe essere una decisione di configurazione. Questo è GNU / Linux Debian Wheezy.
174140

1
.mdl'estensione sbagliata?" Il creatore di Markdown ha commentato questo argomento di recente.
Mike Seplowitz,

Risposte:


12

Analisi

In $VIMRUNTIME/filetype.vim, troverai questo:

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

Quindi, README.mdviene rilevato solo come Markdown. Un motivo può essere trovato nello stesso file durante la ricerca*.md

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

Spiegazione

A differenza dei tipi MIME (dove esiste un registro), le estensioni dei file non sono standardizzate e (specialmente per quelle brevi), si sovrappongono più significati possibili. Sta a te decidere come gestirli. Se è molto più probabile che foo.mdsignifichi un file Markdown rispetto al codice sorgente di Modula 2, basta ignorare il valore predefinito di Vim, ad esempio tramite

au BufNewFile,BufRead *.md  setf markdown

in ~/.vim/ftdetect/markdown.vim, o come descritto in :help new-filetype.


9

Il

autocmd BufRead,BufNew *.md setf markdown

non ha funzionato per me su vim 7.4, quindi ho dovuto usare il "vecchio" modo tradizionale di impostare il tipo di file:

autocmd BufRead,BufNew *.md set filetype=markdown

e questo evidenzia *.mdcorrettamente i file.


3
Questo è quello che vuoi. Le risposte migliori non funzionano.
Michael Fox,

8

Aggiungi queste righe al tuo ~/.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

1
Perché reimpostare il tipo di file su ciascuna voce del buffer? L'insieme canonico di eventi ftdetect è BufNewFile,BufRead, e dovrebbe essere sufficiente anche qui.
Ingo Karkat,

1

Prova a terminare il file con .markdown: potrebbe essere lungo, ma per me è un trucco.


Sì, è quello che funziona. Tuttavia, se i .mdfile sono file markdown, ho intenzione di far giocare correttamente Vim con loro! Anche gli usi di GitHub README .md.
Krystah,

Puoi anche usarlo .markdowncon GitHub. Ad ogni modo, usa uno .mdo .markdownperché gli altri sono meno ampiamente supportati.
nyuszika7h,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.