使用'#';在.vimrc中的bash命令中

使用'#';在.vimrc中的bash命令中,vim,Vim,我想创建一个新命令,它编译我当前的*.tex文件并显示在pdf查看器中(我使用OSX,因为我使用预览)。以下是我的尝试: autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!TEMP=% && PDF=${TEMP:0: ${#TEMP}-4 } && echo $TEMP && "/usr/texbin/pdflatex" -synctex=1 -interaction=no

我想创建一个新命令,它编译我当前的*.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>
是否有其他方法可以在不使用“#”的情况下缩短字符串

解决方案:

autocmd BufReadPost,BufWritePost *.tex nmap <Leader>b :!PDF="%<.pdf" && "/usr/texbin/pdflatex" -synctex=1 -interaction=nonstopmode "%" && open "$PDF" && unset PDF<CR>

autocmd BufReadPost,BufWritePost*.tex nmap b:!PDF=“%为什么不使用错误消息的建议,并在Vimscript中而不是在shell中设置
PDF
?替换

PDF=${TEMP:0: ${#TEMP}-4 }

PDF=%<
甚至

PDF=%<.pdf
PDF=%
PDF=%<
PDF=%<.pdf