如何解决定义 vim 命令以使用另一个扩展名打开当前文件名
我正在尝试一种简单的方法来在 LaTeX 中编译 pdf 并使用 zathura 从 vim 中的单个 autocmd 打开它们,到目前为止我尝试过:
command Latex !pdflatex %:t
command Za !zathura @%.pdf
autocmd FileType tex map <leader>pdf :w<CR>:Latex<CR>:Za <CR>
显然,@%.pdf
是错误的,但我没有找到如何在文件名后附加扩展名。我是 vim 脚本的新手,所以请指出任何其他错误。
解决方法
既然没人回答,我就想出了一个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>
,
我相信 %:r
是您正在寻找的,没有 @
字符。它将返回文件名,没有扩展名。
另外,看看this question。
EDIT:我刚刚在这里测试(不是用 !zathura
,而是用 !echo
),下面这行应该适合你(只是在文件名展开后附加正确的扩展名):command Za !zathura %:r.pdf
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。