Como visualizar o resultado do arquivo de remarcação editado no vim?

8

Eu uso o vim para editar latex, mas o látex é muito pesado para fazer anotações casualmente diariamente, então decidi usar a remarcação.

Então, eu quero configurar o vim para que eu possa visualizar o arquivo formatado de remarcação usando o \lvcomando

Eu estou usando Mac OS X 10.11. Como devo modificar o arquivo .vimrc?

Tom
fonte
3
Você já pesquisou alguns plugins como este ?
statox
3
Você não precisa visualizar a remarcação.
Romainl
1
@romainl Seria bom se eu pudesse.
Tom
2
@romainl Sim, e não preciso de destaque de sintaxe. Não descarta o fato de ser útil.
21430 Tommy A
2
@romainl Eu estava desenhando um paralelo de "necessidade vs. desejo".
Tommy A

Respostas:

10

Embora eu concorde principalmente com o comentário @romainl (a redução foi feita para ser explícita o suficiente para não precisar de uma visualização), você pode fazer isso de diferentes maneiras:

[OSX / Unix] O plug-in de marcação instantânea é uma solução. Você precisa ter o node.js instalado e usar o seguinte comando:

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

Você também precisa ter os pacotes xdg-utils, curle nodejs-legacyinstalado.

Com isso, quando você abre um buffer de remarcação, uma página html será aberta no seu navegador da web e você verá as alterações em tempo real.


[Unix] Esta resposta sugere usar o programa de marcação de daringfireball .

Depois de baixá-lo, você pode usar o seguinte comando para ver o arquivo no lynx :

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

Você pode usá-lo em um comando Vim com algo assim:

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

[Unix] Outro plugin que pode ser útil é o vim-preview, que parece ter algumas dependências, mas deve funcionar nos arquivos de markdown, rdoc, textile, ronn e rts.


[Windows / OSX] Finalmente, o usuário do github natesilva criou uma essência muito boa, que requer apenas o markdowncomando no seu caminho. Depois de obter o script, você ,pdeve abrir a sua marcação no navegador padrão.

"
" 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>

O Edit @ TommyA também sugeriu que o grip não é um plugin do vim, mas pode ser instalado com ele pip install grip. A principal vantagem deste programa é que ele usa a API de remarcação do GitHub, portanto a renderização deve ficar bem próxima da aparência da remarcação nas páginas do Github.

Este programa servirá seus arquivos de remarcação localhost:6419por padrão. Você deve poder invocá-lo do Vim com:!grip

statox
fonte
Também existe uma aderência que gera remarcações com sabor do GitHub.
Tommy A
O @TommyA de remarcação instantânea também gera remarcações com sabor do GitHub, mas outra alternativa também é boa. O Grip parece bom porque não tem muitas dependências (depois que você o usa pip, parece que está pronto). Obrigado por seu comentário!
Statox
Eu senti falta disso. No entanto, o grip usa a API de remarcação do GitHub. Portanto, sempre deve ser renderizado quase exatamente como aparecerá no GitHub, incluindo destaque de idioma e emoji. Há também uma solicitação pull para que ele renderize o WikiLinks.
21416 Tommy A
@statox Existe uma maneira de definir o vim que instant-markdown pluginseja acionado para .mdextensões?
Tom
@ TommyA: Oh, é bom saber. Você quer que eu adicioná-lo para a minha resposta ou você quiser fazer sua própria resposta
statox