使用命令通过vim通过pandoc将Markdwn编译为PDF

使用命令通过vim通过pandoc将Markdwn编译为PDF,pdf,vim,markdown,pandoc,Pdf,Vim,Markdown,Pandoc,我使用pandoc markdown作为使用vim生成文档的主要工具。当我需要编译文档时,我通常会键入 :!pandoc Something.rmd --pdf-engine=xelatex -o Something.pdf 但是,当我使用LaTeX编译文档时,我已经将Ctrl+C映射为自动编译PDF,我使用了以下两行代码“偷来的”: autocmd文件类型tex inoremap:!xelatex%a autocmd文件类型tex nnoremap:!xelatex% 由于我不是vim编程

我使用pandoc markdown作为使用vim生成文档的主要工具。当我需要编译文档时,我通常会键入

:!pandoc Something.rmd --pdf-engine=xelatex -o Something.pdf
但是,当我使用LaTeX编译文档时,我已经将Ctrl+C映射为自动编译PDF,我使用了以下两行代码“偷来的”:

autocmd文件类型tex inoremap:!xelatex%a
autocmd文件类型tex nnoremap:!xelatex%


由于我不是vim编程方面的专家,而且我不太了解.vimrc是如何工作的(我学习得很慢),我想知道是否有一种方法可以将某个键(例如Ctrl+C)绑定到从标记文档自动编译PDF文件的过程中。

所以,您想要与LaTeX映射等效的标记,对吗

我们先把原来的整理一下,;不幸的是,许多人只是复制和粘贴在互联网上某个地方看到的东西,而没有完全理解它。了解如何查找命令和导航内置的
:help
;它是全面的,并提供了许多提示。您学习Vim的速度不会像其他编辑器一样快,但如果您致力于持续学习,它将被证明是一个非常强大和高效的编辑器

autocmd FileType tex nnoremap <C-C> :!xelatex<space><c-r>%<Enter>
autocmd FileType tex inoremap <C-C> <Esc>:!xelatex<space><c-r>%<Enter>a
现在我们有了它,我们可以定义降价的变量。它(通过
:setl filetype?
找到)是
markdown

autocmd FileType markdown nnoremap <buffer> <C-C> !pandoc % --pdf-engine=xelatex -o %:r.pdf
autocmd文件类型标记nnoremap!pandoc%--pdf engine=xelatex-o%:r.pdf
%:r
是另一种特殊的表示法,它从当前文件名中去掉最后一个扩展名,这样我们就可以附加
.pdf

我将把插入模式变量留给您,以供练习:-)

最后的话
我建议将任何设置、映射和特定于文件类型的autocmd放入
~/.vim/ftplugin/{filetype}\u which.vim
(或
{filetype}/which.vim
;cp.
:help ftplugin name
)而不是定义大量
:autocmd filetype{filetype}
;它更干净,结垢更好;但要求您在上有
:文件类型插件。覆盖默认文件类型插件中内容的设置应该改为进入
~/.vim/after/ftplugin/{filetype}.vim

事实上我不知道为什么今天降价版本开始不起作用。您知道原因吗?不知道,但作为第一步,我将检查问题是在Vim内部还是外部,例如使用
:!回声潘多克实际上,代码片段的latex版本可以工作,但降价不起作用,正在执行
:!echo pandoc%-o%:r.pdf
实际打印
pandoc myfile.md-o myfile.pdf
。这看起来不错,所以pandoc可能有问题。你可以尝试在Vim之外调用它。已经完成了,它工作了,我真的不知道如何处理它
autocmd FileType markdown nnoremap <buffer> <C-C> !pandoc % --pdf-engine=xelatex -o %:r.pdf