我想创建一个新命令来编译我当前的 *.tex 文件并在 pdf 查看器中显示(因为我使用的是预览,所以我使用的是 OSX)。这是我的尝试:
autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!TEMP=% && PDF=${TEMP:0: ${#TEMP}-4 } && echo $TEMP && "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode % && open $PDF && unset TEMP PDF<CR>
TEMP 是 mit *.tex 文件的文件名。
PDF 是我的 *.pdf 的文件名。
但是,当我执行此操作时,我收到以下错误消息:
499: Empty file name for '%' or '#', only works with ":p:h"
是否有其他方法可以在不使用“#”的情况下缩短字符串?
解决方案:
autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!PDF="%<.pdf" && "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode "%" && open "$PDF" && unset PDF<CR>