首页 > 解决方案 > 定义 vim 命令以使用另一个扩展名打开当前文件名

问题描述

我正在尝试一种简单的方法来在 LaTeX 中编译 pdf,并从 vim 中的单个 autocmd 使用 zathura 打开它们,到目前为止我尝试过:

command Latex !pdflatex %:t
command Za !zathura @%.pdf
autocmd FileType tex map <leader>pdf :w<CR>:Latex<CR>:Za <CR>

显然,@%.pdf这是错误的,但我没有找到如何将扩展名附加到文件名的运气。我是 vim 脚本的新手,所以请指出任何其他错误。

标签: vimlatex

解决方案


由于没有人愿意回答,我想出了一个 shell 解决方案,一个名为zatex的脚本:

tex=".tex"
pdf=".pdf"
cd $1; 
texfile="$2$tex";
pdflatex $texfile;
pdffile="$2$pdf";
setsid zathura $pdffile;

在我的 .vimrc 里面:

command Zatex !zatex %:p:h %:p:h:t
autocmd FileType tex map <leader>pdf :w<CR>:Zatex<CR>

当然,在第一次编译之后,有另一个映射来编译 pdf 可能会很方便,因为 zathura 已经打开:

command Latex !pdflatex %:t
autocmd FileType tex map <leader>tex :w<CR>:Latex<CR>

推荐阅读