在 Vim 中编译和查看 LaTeX 文档的映射
Mappings for compiling and viewing LaTeX documents in Vim
我以前用LaTeX-Box plugin to compile and view LaTeX documents with .
但我不再使用它了,因为无法关闭的 \begin
和 \end
突出显示(以及较低程度的括号匹配)使 Vim在大 .tex
文件中慢很多。
我知道如何创建用于编译 .tex
文档的替代映射:
autocmd FileType tex nnoremap <buffer> <F2> :!latexmk -xelatex %<cr>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!latexmk -xelatex %<cr>a
但这会在我当前所在的目录中创建输出文件,而不是在 .tex
文件所在的目录中(例如,如果我在 ~/Desktop
中并且我在 Vim 一个位于 ~/Documents
的文件,如果我按 F2
,.pdf
并且所有其他文件都在 ~/Desktop
而不是 ~/Documents
中创建)。 =27=]
我不知道如何创建映射以查看已编译的 .pdf
文档。
所以,我请求你帮我创建映射,它将编译 .tex
文件,并查看创建的 .pdf
文件。
您可以轻松地修改您的映射以在与您的源文件相同的目录中生成文件 :help filename-modifiers
:
augroup LaTeX
autocmd!
autocmd FileType tex nnoremap <buffer> <F2> :!cd %:p:h && latexmk -xelatex %<cr>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd %:p:h && latexmk -xelatex %<cr>a
augroup END
要用假想的 pdfviewer
程序打开生成的文件(为便于阅读而缩短命令):
!cd %:p:h && latexmk -xelatex % && pdfviewer %:p:r.pdf
augroup LaTeX
autocmd!
autocmd FileType tex nnoremap <buffer> <F2> :!cd '%:p:h' && latexmk -xelatex '%:t'<CR>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd '%:p:h' && latexmk -xelatex '%:t'<CR>a
autocmd FileType tex nnoremap <buffer> <F3> :silent !mupdf '%:p:r.pdf'&<CR>
autocmd FileType tex inoremap <buffer> <F3> <Esc>:silent !mupdf '%:p:r.pdf'&<CR>a
augroup END
这对我有用。感谢 romainl for 弄明白了。
我以前用LaTeX-Box plugin to compile and view LaTeX documents with
但我不再使用它了,因为无法关闭的 \begin
和 \end
突出显示(以及较低程度的括号匹配)使 Vim在大 .tex
文件中慢很多。
我知道如何创建用于编译 .tex
文档的替代映射:
autocmd FileType tex nnoremap <buffer> <F2> :!latexmk -xelatex %<cr>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!latexmk -xelatex %<cr>a
但这会在我当前所在的目录中创建输出文件,而不是在 .tex
文件所在的目录中(例如,如果我在 ~/Desktop
中并且我在 Vim 一个位于 ~/Documents
的文件,如果我按 F2
,.pdf
并且所有其他文件都在 ~/Desktop
而不是 ~/Documents
中创建)。 =27=]
我不知道如何创建映射以查看已编译的 .pdf
文档。
所以,我请求你帮我创建映射,它将编译 .tex
文件,并查看创建的 .pdf
文件。
您可以轻松地修改您的映射以在与您的源文件相同的目录中生成文件 :help filename-modifiers
:
augroup LaTeX
autocmd!
autocmd FileType tex nnoremap <buffer> <F2> :!cd %:p:h && latexmk -xelatex %<cr>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd %:p:h && latexmk -xelatex %<cr>a
augroup END
要用假想的 pdfviewer
程序打开生成的文件(为便于阅读而缩短命令):
!cd %:p:h && latexmk -xelatex % && pdfviewer %:p:r.pdf
augroup LaTeX
autocmd!
autocmd FileType tex nnoremap <buffer> <F2> :!cd '%:p:h' && latexmk -xelatex '%:t'<CR>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd '%:p:h' && latexmk -xelatex '%:t'<CR>a
autocmd FileType tex nnoremap <buffer> <F3> :silent !mupdf '%:p:r.pdf'&<CR>
autocmd FileType tex inoremap <buffer> <F3> <Esc>:silent !mupdf '%:p:r.pdf'&<CR>a
augroup END
这对我有用。感谢 romainl for