Мне нравятся редакторы mark и Mou, которые имеют прекрасную возможность предварительного просмотра результатов рендеринга на лету. Поэтому мне интересно, есть ли способ сделать то же самое в Vim?
Есть ли плагин Vim для предварительного просмотра файлов уценки?
- @TechliveZheng отлично! я собираюсь проверить это 22.08.2012
- Это не то, о чем вы просите, но если вы еще не знаете об этом, проверьте Voom, планировщик, работающий с уценкой (
:voom markdown
). Это более полезно, чем рендерер «на лету», потому что позволяет вам перемещаться по заголовкам документа. 04.02.2014 - Все плагины Vim, которые делают это, похоже, требуют какой-то внешней программы Python, Ruby, Javascript или Rust. Я предпочитаю euclio/vim-markdown-composer, он написан на Rust в бэкенде и позволяет использовать pandoc, а также генератор. По большей части это просто работает (требуется установка Rust, а затем дальнейшая компиляция, но после перезапуска работает отлично). Тогда это быстро, что для меня важнее всего. 09.11.2020
Ответы:
Недавно я нашел расширение Chrome, которое позволяет Chrome правильно открывать и отображать файлы уценки: Markdown предварительный просмотр.
Затем нужно было просто сопоставить ключ в Vim, чтобы открыть файл в Chrome. Мой выглядит так:
" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!start C:\Users\tomas\AppData\Local\Google\Chrome\Application\chrome.exe %:p<CR>'
Эту команду, конечно, нужно будет отредактировать, если ваши файлы не имеют расширения «.md», вы хотите, чтобы ваше сопоставление с другим ключом или если Chrome находится в другом месте.
Теперь всякий раз, когда я редактирую файл «.md», я могу нажать <F5>
, чтобы открыть файл в Chrome. Идеальным решением было бы заставить Chrome автоматически перезагружаться каждые несколько секунд, но я не могу найти такое расширение, которое работает для локальных файлов.
Плюсы:
- Возможность нажать кнопку для предварительного просмотра файла уценки без необходимости запуска серверов или специального кода.
- Работает на всех платформах, поддерживающих Vim и Chrome, что практически охватывает все платформы.
Минусы:
- Нет автообновления, вам нужно нажимать
<F5>
каждый раз, когда вы хотите просмотреть файл. - Никакой уценки в духе Github.
Вам повезло — я только что написал плагин vim с предварительным просмотром Markdown в реальном времени. Он также использует github Markdown и стили: https://github.com/suan/vim-instant-markdown
neovim
! 24.11.2016 Фактически вы можете использовать pandoc для компиляции в формат документа по вашему выбору и просмотра его с помощью внешней команды по умолчанию. Например, мне нравится просматривать его в формате pdf, и я использую следующую настройку в 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>
Я компилирую документ с помощью ,pc
и просматриваю с помощью ,pp
. Так как в ubuntu evince
является просмотрщиком по умолчанию и автоматически загружает измененные файлы. В итоге вы делаете только ,pc
, чтобы изменения отразились.
PS: я привязал Leader к ,
E481: No range allowed
при попытке скомпилировать с помощью этого ярлыка. 15.02.2021 Я использую Marked.app для предварительного просмотра файлов Markdown. И сопоставили <leader>p
для предварительного просмотра:
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()
Если вы не хотите тратить 4 доллара на Marked.app, попробуйте Hammer.vim. Измените строку на:
map <buffer> <leader>p :Hammer<CR>
В дополнение к ответу @Codemonkey, если вы используете OSX, вы можете использовать следующее в своем файле .vimrc.
" Open markdown files with Chrome.
autocmd BufEnter *.md exe 'noremap <F5> :!open -a "Google Chrome.app" %:p<CR>'
Нет, есть несколько подключаемых модулей Vim для подсветки синтаксиса, фрагментов кода и т. д., но Vim отображает только текст и только текст, поэтому у вас не может быть Markdown< /em> (или любой другой) предварительный просмотр в Vim.
Если вас интересует предварительный просмотр в реальном времени, возможно, MarkdownPad лучше подойдет для ваших нужд.
Вот простой плагин vim для просмотра Markdown в Chrome — он не требует рубина или чего-то особенного и будет обновлять предварительный просмотр при записи в буфер vim (его также можно активировать с помощью горячей клавиши)
Кроме того, предварительный просмотр происходит в фоновом режиме, поэтому вам никогда не придется выходить из vim.
https://github.com/JamshedVesuna/vim-markdown-preview
У меня есть функция в моем каталоге .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
При этом у меня также есть следующее сопоставление:
inoremap <buffer> <F7> <ESC>:call markdown#preview()<CR>
nmap <buffer> <F7> :call markdown#preview()<CR>
Это не идеально и не в реальном времени, но этого достаточно для моих ограниченных потребностей.
Я наткнулся на хороший плагин, который отлично работал из коробки https://github.com/waylan/vim-markdown-extra-preview
Я не думаю, что уценка предварительного просмотра в vim - хорошая идея. Но вы можете преобразовать свою разметку в HTML, просто набрав %!markdown
, предположительно у вас установлена разметка. Затем сохраните этот файл и откройте его в браузере.
%:p
заменяется на полный путь к текущему файлу. Ссылка на документацию здесь. 19.05.2019