Comment prévisualiser le résultat du fichier de démarque édité dans vim?

8

J'utilise vim pour éditer latex, mais le latex est un peu trop lourd pour prendre des notes nonchalamment quotidiennement, j'ai donc décidé d'utiliser le démarque à la place.

Donc, je veux configurer vim afin que je puisse voir le fichier au format markdown en utilisant la \lvcommande

J'utilise Mac OS X 10.11. Comment modifier le fichier .vimrc?

À M
la source
3
Avez-vous recherché des plugins comme celui-ci ?
statox
3
Vous n'avez pas besoin de prévisualiser le démarque.
romainl
1
@romainl Ce serait bien si je le pouvais.
Tom
2
@romainl Ouais et je n'ai pas besoin de coloration syntaxique. N'écarte pas le fait qu'il soit utile.
Tommy A
2
@romainl Je dessinais un parallèle entre «besoin et besoin».
Tommy A

Réponses:

10

Bien que je sois principalement d'accord avec le commentaire de @romainl (le démarquage a été fait pour être suffisamment explicite pour ne pas avoir besoin d'un aperçu), vous pouvez le faire de différentes manières:

[OSX / Unix] Le plugin de démarquage instantané est une solution. Vous devez avoir node.js installé et utiliser la commande suivante:

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

Vous devez aussi avoir les paquets xdg-utils, curlet nodejs-legacyinstallé.

Avec cela, lorsque vous ouvrez un tampon de démarque, une page html sera ouverte dans votre navigateur Web et vous verrez les changements en temps réel.


[Unix] Cette réponse suggère d'utiliser le programme de démarque daringfireball .

Une fois que vous l'avez téléchargé, vous pouvez utiliser la commande suivante pour voir le fichier dans lynx :

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

Vous pouvez l'utiliser dans une commande Vim avec quelque chose comme ça:

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

[Unix] Un autre plugin qui pourrait être utile est vim-preview, il semble avoir quelques dépendances mais devrait fonctionner sur les fichiers markdown, rdoc, textile, ronn et rts.


[Windows / OSX] Enfin, l'utilisateur github natesilva a fait un très bon aperçu qui ne nécessite que la markdowncommande sur votre chemin. Une fois que vous avez trouvé le script, ,pvous devez ouvrir votre démarque dans le navigateur par défaut.

"
" 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 a également suggéré de saisir ce n'est pas un plugin vim mais il peut être installé avec pip install grip. Le principal avantage de ce programme est qu'il utilise l'API de démarque de GitHub donc le rendu devrait être assez proche de ce à quoi ressemblera votre démarque sur les pages Github.

Ce programme servira vos fichiers de démarque localhost:6419par défaut. Vous devriez pouvoir l'invoquer depuis Vim avec:!grip

statox
la source
Il y a aussi une poignée qui rend la démarque aromatisée GitHub.
Tommy A
@TommyA instant-markdown rend également le démarque aromatisé GitHub mais une autre alternative est également bonne. Grip semble sympa car il n'a pas beaucoup de dépendances (une fois que vous l'avez utilisé, pipil semble que vous êtes prêt à partir). Merci pour votre commentaire!
statox
Ah ça raté. Cependant, grip utilise l'API de démarque de GitHub. Ainsi, il devrait toujours être rendu presque exactement comme il apparaîtra sur GitHub, y compris la mise en évidence de la langue et les emoji. Il y a aussi une demande de tirage pour obtenir le rendu des WikiLinks.
Tommy A
@statox Existe-t-il un moyen de définir vim de manière à ce qu'il instant-markdown pluginsoit déclenché pour les .mdextensions?
Tom
@TommyA: Oh c'est bon à savoir. Voulez-vous que je l'ajoute à ma réponse ou voulez-vous faire votre propre réponse
statox