web-dev-qa-db-fra.com

Existe-t-il un plugin Vim pour prévisualiser les fichiers de démarques?

J'adore l'éditeur marqué et Mou qui a la grande capacité de prévisualiser les résultats de rendu à la volée. Je me demande donc, est-il possible de faire la même chose à Vim?

66
mko

J'ai récemment trouvé une extension Chrome qui permet à Chrome d'ouvrir et d'afficher correctement les fichiers de démarques: prévisualisation des marqueurs .

Ensuite, il s'agissait simplement de mapper une clé dans Vim pour ouvrir le fichier avec Chrome. Le mien ressemble à ceci:

" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!start C:\Users\tomas\AppData\Local\Google\Chrome\Application\chrome.exe %:p<CR>'

Cette commande devrait être modifiée, bien sûr, si vos fichiers n'ont pas l'extension ".md", vous voulez que votre mappage sur une clé différente ou si Chrome se trouve à un autre emplacement.

Maintenant, chaque fois que je modifie un fichier ".md", je peux appuyer sur <F5> pour ouvrir le fichier dans Chrome. Une solution parfaite serait d'obtenir Chrome pour recharger automatiquement toutes les quelques secondes, mais je n'arrive pas à trouver une telle extension qui fonctionne pour les fichiers locaux.


Avantages:

  • La possibilité d'appuyer sur un bouton pour prévisualiser votre fichier de démarque, sans avoir besoin de serveurs en cours d'exécution ou de code spécial.
  • Fonctionne sur toutes les plates-formes qui prennent en charge Vim et Chrome - qui couvre à peu près toutes les plates-formes.

Les inconvénients:

  • Pas d'actualisation automatique, vous devez appuyer sur <F5> chaque fois que vous souhaitez prévisualiser le fichier.
  • Pas de démarque au goût de Github.
42
Hubro

Vous avez de la chance - je viens d'écrire un plugin vim avec un aperçu Markdown en temps réel. Il utilise également github Markdown et les styles: https://github.com/suan/vim-instant-markdown

63
Suan

J'utilise Marked.app pour prévisualiser les fichiers Markdown. Et ont cartographié <leader>p pour faire un aperçu:

function! s:setupMarkup()
  nnoremap <leader>p :silent !open -a Marked.app '%:p'<cr>
endfunction

au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup()

Si vous ne voulez pas perdre 4 $ sur Marked.app, vous pouvez essayer Hammer.vim . Changez la ligne en:

map <buffer> <leader>p :Hammer<CR>
13
Steve McKinney

Vous pouvez réellement utiliser pandoc pour compiler au format de document de votre choix et l'afficher à l'aide de la commande par défaut externe. Par exemple, j'aime le prévisualiser au format PDF et j'utilise la configuration suivante sur Ubuntu.

" pandoc , markdown
command! -nargs=* RunSilent
      \ | execute ':silent !'.'<args>'
      \ | execute ':redraw!'
nmap <Leader>pc :RunSilent pandoc -o /tmp/vim-pandoc-out.pdf %<CR>
nmap <Leader>pp :RunSilent gnome-open /tmp/vim-pandoc-out.pdf<CR>

Je compile un document en utilisant ,pc et prévisualisez avec ,pp. Puisque dans ubuntu evince est le visualiseur par défaut et charge automatiquement les fichiers modifiés. Vous finissez par ne faire que ,pc pour que vos modifications soient prises en compte.

PS: J'ai mappé à Leader,

12
FUD

Non, il existe plusieurs plugins Vim pour la coloration syntaxique, des extraits et ainsi de suite, mais Vim affiche le texte et le texte uniquement , donc vous ne pouvez pas avoir Markdown (ou tout autre type de) = aperçu dans Vim.

Si vous êtes intéressé par l'aperçu en temps réel, peut-être MarkdownPad conviendrait mieux à vos besoins.

5
Rook

Pour ajouter à la réponse de @Codemonkey, si vous utilisez OSX, vous pouvez utiliser ce qui suit dans votre fichier .vimrc.

" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!open -a "Google Chrome.app" %:p<CR>'
5
Jeff

Voici un plugin vim simple pour afficher Markdown dans Chrome - il ne nécessite pas Ruby ou quoi que ce soit de fantaisie et actualisera l'aperçu lorsque vous écrivez dans le tampon vim (il peut également être activé avec un raccourci clavier)

De plus, l'aperçu a lieu en arrière-plan, vous n'avez donc jamais à quitter vim.

https://github.com/JamshedVesuna/vim-markdown-preview

3
user3200729

J'ai une fonction dans mon répertoire .vim:

function! markdown#preview()
  silent update
  let output_name = tempname() . '.html'

  let file_header = ['<html>', '<head>',
        \ '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">',
        \ '<title>'.expand('%:p').'</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)

  silent exec '!markdown "' . expand('%:p') . '" >> "' . output_name . '"'

  silent exec '!echo "</div></body></html>" >> "' . output_name . '"'

  silent exec '!sensible-browser "' . output_name . '" &'
endfunction

Avec cela, j'ai également la cartographie suivante:

inoremap <buffer> <F7> <ESC>:call markdown#preview()<CR>
nmap <buffer> <F7> :call markdown#preview()<CR>

Ce n'est pas parfait et ce n'est pas en temps réel mais c'est assez bon pour mes besoins limités.

1
lucapette

Je suis tombé sur un plugin Nice qui fonctionnait très bien hors de la boîte https://github.com/waylan/vim-markdown-extra-preview

1
katzmopolitan

Je ne pense pas que la réduction de l'aperçu dans vim soit une bonne idée. Mais vous pouvez convertir votre démarque en HTML simplement en tapant %!markdown, il est probable que le démarque soit installé. Enregistrez ensuite ce fichier et ouvrez-le dans un navigateur.

0
Alan Dong