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.