Si bien estoy de acuerdo con el comentario de @romainl (la rebaja se hizo para ser lo suficientemente explícita como para no necesitar una vista previa), puede hacer esto de diferentes maneras:
[OSX / Unix] El complemento de reducción instantánea es una solución. Necesita tener node.js instalado y usar el siguiente comando:
[sudo] npm -g install instant-markdown-d
También necesita tener los paquetes xdg-utils
, curl
y nodejs-legacy
se instala.
Con eso, cuando abra un búfer de reducción, se abrirá una página html en su navegador web y verá los cambios en tiempo real.
[Unix] Esta respuesta sugiere utilizar el programa de reducción de daring fireball .
Una vez que lo haya descargado, puede usar el siguiente comando para ver el archivo en Lynx :
./Markdown.pl ~/testfile.markdown | lynx -stdin
Puede usarlo en un comando Vim con algo así:
:!./Markdown.pl % | lynx -stdin
[Unix] Otro complemento que podría ser útil es vim-preview , parece tener algunas dependencias, pero debería funcionar en los archivos markdown, rdoc, textile, ronn y rts.
[Windows / OSX] Finalmente, el usuario de github natesilva hizo una muy buena idea que solo requiere el markdown
comando en su camino. Una vez que obtenga el script, ,pdebe abrir su markdown en el navegador predeterminado.
"
" 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 también sugirió agarre, este no es un complemento vim pero se puede instalar con pip install grip
. La principal ventaja de este programa es que utiliza la API de rebajas de GitHub, por lo que el renderizado debe ser bastante parecido al aspecto de su rebaja en las páginas de Github.
Este programa servirá sus archivos de descuento localhost:6419
por defecto. Debería poder invocarlo desde Vim con:!grip