Abilitazione dell'evidenziazione del markdown in Vim


138

Sto usando Vim in un terminale sul mio MacBook Air con OS X Lion e non riesco a trovare un buon plugin per evidenziare la sintassi di Markdown.

Finora ho provato il plugin plasticboy e il plugin di Tim Pope . Il plug-in plasticboy ha funzionato correttamente, ma stava causando l'evidenziazione degli spazi bianchi alla fine delle righe e non ho capito come disattivarlo. (È davvero fastidioso, perché ogni volta che colpisco spacementre scrivo mette in evidenza il personaggio.)

Il plug-in di Tim non sembra fare molto in termini di evidenziazione, a parte forse le intestazioni che usano ###. I blocchi di codice e i punti elenco vengono ignorati. Potrei essermi perso qualcosa lì. Uso l' .mdestensione sui miei file Markdown, quindi dovrei raccogliere il tipo di file.

Ho anche visto un riferimento a Vim 7.3 con supporto Markdown integrato, ma senza uno di quei due plugin non ottengo alcun evidenziamento.

Uno di questi richiede schemi di colori specifici per funzionare?


24
*.mdnon è l'estensione giusta per il markdown. Quello è per i file modula. Il plugin Tpope funziona bene (tutti questi plugin funzionano bene) Dovresti usare l' *.markdownestensione
lucapette,

7
@lucapette la ftdetect per il plugin di Tim Pope non includere anche *.md, insieme a: *.markdown,*.mdown,*.mkd,*.mkdn. Il plug-in plasticboy rileva automaticamente solo*.mkd,*.markdown,*.mdwn
pb2q

1
Dalla fonte del plugin plasticboy, sembra che effettivamente rilevi .mdanche. Sono bloccato in questa estensione per ora perché sto usando Scriptogr.am per il mio blog, e questa è l'unica estensione che riconoscono in questo momento.
Josh Earl,

1
Ho appena trovato questo ed è piuttosto rockin per il markdown al gusto di github: github.com/jtratner/vim-flavored-markdown
Matthew Turner,

Per problemi con plasticboy / vim-markdown , si prega di aprire i problemi sui progetti in modo che gli sviluppatori possano risolverli. Trovo che l'evidenziazione degli spazi bianchi finali sia un buon comportamento poiché i doppi spazi generano <br>tag, quindi gli autori dovrebbero esserne consapevoli.
Ciro Santilli 24 冠状 病 六四 事件 法轮功

Risposte:


22

Questo dovrebbe funzionare per disabilitare l'evidenziazione dello spazio di fine linea quando si utilizza il plug-in mkd plasticboy:

:syn clear mkdLineBreak

Potresti autocmdfarlo per le estensioni di file necessarie in modo da non doverlo fare ogni volta che carichi un file di markdown.

Nota che questo punto culminante specifico esiste perché Markdown tratta le righe che terminano con 2 o più caratteri spazio inserendo a <br>, quindi è utile.

Il plug-in plasticboy utilizza l' TODOevidenziazione per questa regola, che è un po 'troppo in quanto è progettato per essere, per impostazione predefinita, davvero sgargiante - sfondo giallo - in modo che risalti. Puoi renderlo meno visivamente sorprendente cambiando quella highlightregola. Un modo rapido per farlo sarebbe qualcosa del tipo:

:hi link mkdLineBreak Underlined

Ora quegli spazi di fine riga verranno visualizzati come sottolineati. Prova a collegarti ad altri highlightgruppi per qualcosa che potrebbe interessarti di più. Invece di usare linkpuoi ottenere ancora più specifici su quegli spazi di fine linea: ad esempio potresti specificare che appaiono leggermente più chiari / scuri dello sfondo normale, usando il tuo highlightcomando, specificando ctermfg , ctermbg , guifg personalizzati , impostazioni guibg .

Come sopra, è possibile autocmdapplicare queste impostazioni specifiche.

Per ulteriori informazioni sui highlightgruppi di collegamenti , digitare: :help group-namee verrà visualizzato un elenco di gruppi che possono essere collegati che dovrebbero essere visualizzati in modo utile utilizzando le highlightregole correnti . Inoltre: :help highlight.


2
Questo ha molto senso. Non avevo capito che due spazi avevano un significato in Markdown. Penso che lo lascerò abilitato a meno che non continui a infastidirmi. Grazie!
Josh Earl,

Sì, è per questo che l'evidenziazione non si avvia fino a quando non sono stati inseriti 2 spazi.
pb2q,

@ josh-earl vedi le mie modifiche per ulteriori alternative quando utilizzo il plugin
plasticboy

308

Informazioni sull'evidenziazione della sintassi nativa per il markdown Penso che funzioni solo per i file con l'estensione .markdownper impostazione predefinita.
Ho avuto problemi con l'evidenziazione della sintassi markdown per i miei .mdfile.
Provai:

:set syntax=markdown

E ha funzionato. Quindi ho incluso la seguente riga nel mio .vimrc:

au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown

Ora il mio vim ha l'evidenziazione della sintassi per i miei .mdfile.

BufFilePre è necessario per: sav


13
Per chiunque legga questo: sì, funziona ed è una soluzione molto più semplice al problema rispetto all'installazione di un plugin. Modo rapido per farlo dalla riga di comando: echo "au BufRead, BufNewFile * .md set filetype = markdown" >> .vimrc
RobinLovelace

11
Mi sembra che questa dovrebbe essere la risposta accettata.
Enrico Campidoglio,

4
@SamStoelinga Non è un bug, .mdviene utilizzato anche da Modula. Rilevare quale utilizzare richiederebbe qualche euristica avanzata.
nyuszika7h,

8
A partire da Vim 7.4.480, i *.mdfile sono riconosciuti come Markdown per impostazione predefinita.
fwalch,

1
Corretto, ma incompleto. Affinché ciò funzioni allo stesso modo con il Save As… :savcomando, è necessario estendere il comando automatico a BufFilePre:autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
Serge Stroobandt

19

Evidenziazione della sintassi nativa

L'evidenziazione della sintassi nativa per Markdown funziona solo per impostazione predefinita per l' .markdownestensione del file.

La seguente riga in .vimrcproduce i migliori risultati per entrambi vime gvim:

autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown.pandoc

Spiegazione:

1. Specifica il tuo sapore Markdown!

Se lavori principalmente con un sapore di Markdown (ad esempio Pandoc ), assicurati di menzionarlo anche tu ! In questo modo, è possibile combinare e abbinare entrambi i plug-in Vim specifici di Markdown e Pandoc. Ad esempio: ho trovato il plug-in di sintassi vim-pandoc particolarmente adatto alle mie esigenze di evidenziazione. Tuttavia, uso la piegatura più generale di vim-markdown per la piegatura di Markdown.

A proposito, è consentito un solo sapore, separato da un punto, ad esempio: filetype=markdown.pandoc

2. gvimrichiedeBufFilePre

gvimrichiede un ulteriore BufFilePrenella riga di autocommand per il riconoscimento del tipo di file Markdown con il Save As… :savcomando.



7

Se non ti piace inserire tutta la configurazione ~/.vimrc, puoi creare ~/.vim/ftdetect/markdown.md(o il suo equivalente su Windows) con i seguenti contenuti.

au BufNewFile,BufRead *.md setf markdown

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.