Aktivieren der Markdown-Hervorhebung in Vim

138

Ich verwende Vim in einem Terminal auf meinem MacBook Air mit OS X Lion und finde anscheinend kein gutes Plugin für die Hervorhebung der Markdown-Syntax.

Bisher habe ich das Plasticboy- Plugin und das Tim Pope-Plugin ausprobiert . Das Plasticboy-Plugin funktionierte einwandfrei, führte jedoch dazu, dass Leerzeichen am Zeilenende hervorgehoben wurden, und ich habe nicht herausgefunden, wie ich das deaktivieren kann. (Es ist wirklich ärgerlich, weil jedes Mal, spacewenn ich beim Schreiben treffe, der Charakter hervorgehoben wird.)

Tims Plugin schien beim Hervorheben nicht viel zu bewirken, abgesehen von vielleicht verwendeten Headern ###. Codeblöcke und Aufzählungszeichen werden ignoriert. Ich könnte dort etwas vermissen. Ich verwende die .mdErweiterung für meine Markdown-Dateien, daher sollte sie den Dateityp übernehmen.

Ich habe auch einen Hinweis auf Vim 7.3 mit integrierter Markdown-Unterstützung gesehen, aber ohne eines dieser beiden Plugins bekomme ich überhaupt keine Hervorhebung.

Benötigen beide spezielle Farbschemata, um zu funktionieren?

Josh Earl
quelle
24
*.mdist nicht die richtige Erweiterung für Abschriften. Dieser ist für Modul-Dateien. Tpope Plugin funktioniert gut (alle diese Plugins funktionieren gut) Sie sollten die *.markdownErweiterung verwenden
Lucapette
7
@lucapette die ftdetect für Tim Pope Plugin ist auch enthalten *.md, zusammen mit: *.markdown,*.mdown,*.mkd,*.mkdn. Das Plasticboy-Plugin erkennt nur *.mkd,*.markdown,*.mdwn
automatisch
1
Aus der Plasticboy-Plugin-Quelle geht hervor, dass es tatsächlich auch erkennt .md. Ich bin vorerst an diese Erweiterung gebunden, da ich Scriptogr.am für mein Blog verwende. Dies ist die einzige Erweiterung, die sie derzeit erkennen.
Josh Earl
1
Ich habe es gerade gefunden und es ist ziemlich rockig für Markdown mit Github-Geschmack: github.com/jtratner/vim-flavored-markdown
Matthew Turner
Bei Problemen mit Plasticboy / Vim-Markdown öffnen Sie bitte Probleme in den Projekten, damit Entwickler sie lösen können. Ich finde, dass das Hervorheben von nachgestellten Leerzeichen ein gutes Verhalten ist, da doppelte Leerzeichen <br>Tags generieren. Daher sollten Autoren darauf aufmerksam gemacht werden.
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功

Antworten:

22

Dies sollte funktionieren, um die Hervorhebung des Zeilenendebereichs zu deaktivieren, wenn Sie das plastikjungen-mkd-Plugin verwenden:

:syn clear mkdLineBreak

Sie können dies autocmdfür die erforderlichen Dateierweiterungen tun, damit Sie dies nicht jedes Mal tun müssen, wenn Sie eine Markdown-Datei laden.

Beachten Sie, dass diese spezielle Hervorhebung vorhanden ist, da Markdown Zeilen, die mit 2 oder mehr Leerzeichen enden, speziell durch Einfügen von a behandelt. Dies <br>ist daher nützlich.

Die plasticboy Plugin verwendet TODOfür diese Regel hervorzuheben, die ist ein bisschen zu viel , wie es standardmäßig angefertigt, sein wirklich grell - gelber Hintergrund - so dass es auffällt. Sie können dies weniger auffällig machen, indem Sie diese highlightRegel ändern . Ein schneller Weg, dies zu tun, wäre etwa:

:hi link mkdLineBreak Underlined

Diese Zeilen am Zeilenende werden nun als unterstrichen angezeigt. Versuchen Sie, eine Verknüpfung zu anderen highlightGruppen herzustellen, um etwas zu finden, das Sie möglicherweise mehr anspricht. Anstatt zu verwenden link, können Sie diese Zeilen am Ende der Zeile noch genauer festlegen: Sie können beispielsweise festlegen, dass sie nur geringfügig heller / dunkler als der normale Hintergrund angezeigt werden , indem Sie Ihren eigenen highlightBefehl verwenden und benutzerdefiniertes ctermfg , ctermbg , guifg angeben , guibg Einstellungen.

Wie oben können Sie autocmddies tun, um Ihre spezifischen Einstellungen zu übernehmen.

Für weitere Informationen zu Linkgruppen geben Sie Folgendes ein highlight: :help group-nameund Sie sehen eine Liste der Gruppen, die verknüpft werden können und die nach den aktuellen highlightRegeln hilfreich angezeigt werden sollten . Auch : :help highlight.

pb2q
quelle
2
Das macht sehr viel Sinn. Wusste nicht, dass zwei Leerzeichen in Markdown Bedeutung haben. Ich denke, ich lasse es aktiviert, es sei denn, es nervt mich immer wieder. Vielen Dank!
Josh Earl
Ja, deshalb setzt das Highlight erst ein, wenn 2 Felder eingegeben wurden.
pb2q
@ Josh-Earl siehe meine Änderungen für weitere Alternativen bei Verwendung des Plasticboy-Plugins
pb2q
308

Über das native Syntax-Highlight für Markdown denke ich, dass es .markdownstandardmäßig nur für Dateien mit der Erweiterung funktioniert .
Ich hatte Probleme mit der Markdown-Syntax-Hervorhebung für meine .mdDateien.
Ich habe es versucht:

:set syntax=markdown

Und es hat funktioniert. Also habe ich die folgende Zeile in meine aufgenommen .vimrc:

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

Jetzt hat mein vim Syntax-Highlight für meine .mdDateien.

BufFilePre wird benötigt für: sav

PutzKipa
quelle
13
Für alle anderen, die dies lesen: Ja, es funktioniert und ist eine viel einfachere Lösung für das Problem als die Installation eines Plugins. Schnelle Möglichkeit, dies über die Befehlszeile zu tun: echo "au BufRead, BufNewFile * .md set filetype = markdown" >> .vimrc
RobinLovelace
11
Es scheint mir, dass dies die akzeptierte Antwort sein sollte.
Enrico Campidoglio
4
@ SamStoelinga Es ist kein Fehler, .mdwird auch von Modula verwendet. Das Erkennen, welches verwendet werden soll, würde einige fortgeschrittene Heuristiken erfordern.
Nyuszika7h
8
Ab Vim 7.4.480 werden *.mdDateien standardmäßig als Markdown erkannt.
Fwalch
1
Richtig, aber unvollständig. Damit dies gleichermaßen mit dem Save As… :savBefehl funktioniert , muss der Autobefehl erweitert werden auf BufFilePre:autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
Serge Stroobandt
19

Hervorhebung der nativen Syntax

Die native Syntaxhervorhebung für Markdown funktioniert standardmäßig nur für die .markdownDateierweiterung.

Die folgende Zeile in .vimrcliefert die besten Ergebnisse für beide vimund gvim:

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

Erläuterung:

1. Geben Sie Ihren Markdown-Geschmack an!

Wenn Sie hauptsächlich mit einer Markdown-Variante (z. B. Pandoc ) arbeiten, sollten Sie dies ebenfalls erwähnen! Auf diese Weise können sowohl Markdown- als auch Pandoc-spezifische Vim-Plug-Ins gemischt und angepasst werden. Zum Beispiel: Ich habe festgestellt, dass das Plug-In vim-pandoc-syntax besonders für meine Hervorhebungsanforderungen geeignet ist. Trotzdem verwende ich die allgemeinere Vim-Markdown-Faltung für die Markdown-Faltung.

Übrigens ist nur eine Geschmacksrichtung erlaubt, die durch einen Punkt getrennt ist, z. filetype=markdown.pandoc

2. gvimerfordertBufFilePre

gvimerfordert eine zusätzliche BufFilePrein der Autocommand-Zeile für die Markdown-Dateityperkennung mit dem Save As… :savBefehl.

Serge Stroobandt
quelle
15

In Tims Plugin funktioniert die Erweiterung .md nur für README.md, da filetype.vim dies angibt.

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown
spartanisch
quelle
1
Falsch; Sie müssen an die Standardinstallation von Vim denken, die sich auf diese Weise verhält. Tims Plugin überschreibt es für alle MD-Dateien. Siehe github.com/tpope/vim-markdown/blob/master/ftdetect/markdown.vim
corvec
7

Wenn Sie nicht alle Ihre Konfigurationen einfügen möchten ~/.vimrc, können Sie ~/.vim/ftdetect/markdown.mddie folgenden Inhalte erstellen (oder eine entsprechende Konfiguration unter Windows).

au BufNewFile,BufRead *.md setf markdown

ajmccluskey
quelle