Wie kann ich eine Vorschau des Ergebnisses einer in vim bearbeiteten Markdown-Datei anzeigen?

8

Ich benutze vim zum Bearbeiten latex, aber Latex ist etwas zu schwer, um täglich beiläufig Notizen zu machen. Deshalb habe ich mich stattdessen für Markdown entschieden.

Daher möchte ich vim so konfigurieren, dass ich mit dem \lvBefehl eine markdown-formatierte Datei anzeigen kann

Ich benutze Mac OS X 10.11. Wie soll ich die .vimrc-Datei ändern?

Tom
quelle
3
Haben Sie nach Plugins wie diesem gesucht ?
Statox
3
Sie müssen keine Vorschau des Markdowns anzeigen.
Romainl
1
@romainl Es wäre schön, wenn ich kann.
Tom
2
@romainl Ja, und ich brauche keine Syntaxhervorhebung. Berücksichtigt nicht die Tatsache, dass es nützlich ist.
Tommy A
2
@romainl Ich habe eine Parallele von "Bedürfnis gegen Bedürfnis" gezeichnet.
Tommy A

Antworten:

10

Obwohl ich dem Kommentar von @romainl größtenteils zustimme (Markdown wurde explizit genug gemacht, um keine Vorschau zu benötigen), können Sie dies auf verschiedene Arten tun:

[OSX / Unix] Das Instant-Markdown-Plugin ist eine Lösung. Sie müssen node.js installiert haben und den folgenden Befehl verwenden:

[sudo] npm -g install instant-markdown-d

Sie müssen auch die Pakete xdg-utilshaben curlund nodejs-legacyinstalliert haben.

Wenn Sie einen Markdown-Puffer öffnen, wird eine HTML-Seite in Ihrem Webbrowser geöffnet und Sie sehen die Änderungen in Echtzeit.


[Unix] Diese Antwort schlägt vor, das Daringfireball-Markdown- Programm zu verwenden.

Sobald Sie es heruntergeladen haben, können Sie den folgenden Befehl verwenden, um die Datei in lynx anzuzeigen :

./Markdown.pl ~/testfile.markdown | lynx -stdin

Sie können es in einem Vim-Befehl mit so etwas verwenden:

:!./Markdown.pl % | lynx -stdin

[Unix] Ein weiteres Plugin, das nützlich sein könnte, ist die Vim-Vorschau. Es scheint einige Abhängigkeiten zu haben, sollte aber für Markdown-, Rdoc-, Textil-, Ronn- und RTS-Dateien funktionieren.


[Windows / OSX] Schließlich hat der Github-Benutzer natesilva eine sehr gute Übersicht erstellt, für die nur der markdownBefehl in Ihrem Pfad erforderlich ist . Sobald Sie die Quelle gefunden haben, sollte das Skript ,pIhren Markdown im Standardbrowser öffnen.

"
" While editing a Markdown document in Vim, preview it in the
" default browser.
"
" Author: Nate Silva
"
" To install: Place markdown.vim in ~/.vim/ftplugin or
" %USERPROFILE%\vimfiles\ftplugin.
"
" To use: While editing a Markdown file, press ',p' (comma p)
"
" Tested on Windows and Mac OS X. Should work on Linux if you set
" BROWSER_COMMAND properly.
"
" Requires the `markdown` command to be on the system path. If you
" do not have the `markdown` command, install one of the following:
"
" http://www.pell.portland.or.us/~orc/Code/discount/
" http://www.freewisdom.org/projects/python-markdown/
"
function!PreviewMarkdown()
    " **************************************************************
    " Configurable settings

    let MARKDOWN_COMMAND = 'markdown'

    if has('win32')
        " note important extra pair of double-quotes
        let BROWSER_COMMAND = 'cmd.exe /c start ""'
    else
        let BROWSER_COMMAND = 'open'
    endif

    " End of configurable settings
    " **************************************************************

    silent update
    let output_name = tempname() . '.html'

    " Some Markdown implementations, especially the Python one,
    " work best with UTF-8. If our buffer is not in UTF-8, convert
    " it before running Markdown, then convert it back.
    let original_encoding = &fileencoding
    let original_bomb = &bomb
    if original_encoding != 'utf-8' || original_bomb == 1
        set nobomb
        set fileencoding=utf-8
        silent update
    endif

    " Write the HTML header. Do a CSS reset, followed by setting up
    " some basic styles from YUI, so the output looks nice.
    let file_header = ['<html>', '<head>',
        \ '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">',
        \ '<title>Markdown Preview</title>',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssbase/base-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssfonts/fonts-min.css">',
        \ '<style>body{padding:20px;}div#container{background-color:#F2F2F2;padding:0 20px;margin:0px;border:solid #D0D0D0 1px;}</style>',
        \ '</head>', '<body>', '<div id="container">']
    call writefile(file_header, output_name)

    let md_command = '!' . MARKDOWN_COMMAND . ' "' . expand('%:p') . '" >> "' .
        \ output_name . '"'
    silent exec md_command

    if has('win32')
        let footer_name = tempname()
        call writefile(['</div></body></html>'], footer_name)
        silent exec '!type "' . footer_name . '" >> "' . output_name . '"'
        exec delete(footer_name)
    else
        silent exec '!echo "</div></body></html>" >> "' .
            \ output_name . '"'
    endif

    " If we changed the encoding, change it back.
    if original_encoding != 'utf-8' || original_bomb == 1
        if original_bomb == 1
            set bomb
        endif
        silent exec 'set fileencoding=' . original_encoding
        silent update
    endif

    silent exec '!' . BROWSER_COMMAND . ' "' . output_name . '"'

    exec input('Press ENTER to continue...')
    echo
    exec delete(output_name)
endfunction

" Map this feature to the key sequence ',p' (comma lowercase-p)
map ,p :call PreviewMarkdown()<CR>

Edit @TommyA schlug auch Grip vor. Dies ist kein Vim-Plugin, aber es kann mit installiert werden pip install grip. Der Hauptvorteil dieses Programms besteht darin, dass es die Markdown-API von GitHub verwendet, sodass das Rendern ziemlich genau so aussehen sollte, wie Ihr Markdown auf Github-Seiten aussehen wird.

Dieses Programm stellt Ihre Markdown-Dateien localhost:6419standardmäßig bereit. Sie sollten es von Vim mit aufrufen können:!grip

statox
quelle
Es gibt auch Grip, der den Markdown mit GitHub-Geschmack wiedergibt.
Tommy A
@TommyA Instant-Markdown rendert auch Markdown mit GitHub-Geschmack, aber eine andere Alternative ist auch gut. Grip scheint nett zu sein, weil es nicht zu viele Abhängigkeiten gibt (wenn Sie es einmal benutzt piphaben, scheint es, als könnten Sie loslegen). Vielen Dank für Ihren Kommentar!
Statox
Ich habe das verpasst. Grip verwendet jedoch die Markdown-API von GitHub. Daher sollte es immer fast genau so gerendert werden, wie es auf GitHub angezeigt wird, einschließlich Sprachhervorhebung und Emoji. Es gibt auch eine Pull-Anfrage , um WikiLinks zu rendern.
Tommy A
@statox Gibt es eine Möglichkeit, vim so einzustellen, dass es instant-markdown pluginfür .mdErweiterungen ausgelöst wird ?
Tom
@ TommyA: Oh das ist gut zu wissen. Möchten Sie, dass ich es meiner Antwort hinzufüge, oder möchten Sie Ihre eigene Antwort geben
statox