我有一个 BASH 脚本,它可以重新编译一个 latex 文档,并在缓冲区写回时使用我的 PDF 阅读器重新打开它。我的 '.vimrc' 中的命令如下所示:
autocmd BufWritePost *.tex !~/scripts/latex_update.sh %
这种方法效果很好,但阅读器总是打开 PDF 的第一页。这很不方便,因为我必须滚动才能查看我刚刚做的更改。我想设置一个名为“page_num”的 VIM 变量,并将其作为第二个参数传递给我的脚本。
我在 VIM 中尝试过这个:
:let g:page_num=2
然后我将“autocmd”更改为:
autocmd BufWritePost *.tex !~/scripts/latex_update.sh % g:page_num
但是,全局变量“page_num”不会被其值替换。如何让 VIM 传递“page_num”的值?
谢谢!
答案1
:exe
在执行其余命令之前使用扩展变量应该可以工作:
autocmd BufWritePost *.txt exe '!~/scripts/latex_update.sh %' g:page_num
请注意,您不需要连接(.
运算符)或在前面放置空格,g:page_num
因为:exe
这是其参数扩展的一部分。