我试图运行一个vimscript(位于我的vimrc中),将某些文件复制到新目录中,然后再编译tex文件并返回pdf。我的代码有效,除了它总是在每个命令上弹出命令提示符。我正在使用很多bash命令来执行此操作(还不太精通vimscript)。
为避免出现弹出窗口,我发现如果您在命令提示符下,键入
start /MIN copy foo.tex bar.tex
在“最小化模式”下运行命令提示符,即不弹出。但是,在vim中时,以命令行模式键入:
!start /MIN copy foo.tex bar.tex
返回“找不到命令”错误消息。实际上,我在!start之后输入的任何命令均无效
!start echo hi -> Command not found
但是,如果我在命令提示符下键入它,它将很好地工作。
我查看了:help命令行,但找不到任何内容。另外,我尝试过:
exe 'sav! bar.tex
但是会移动当前文件和vim缓冲区。我尝试了:copy和:move,但是它们只操作缓冲区中的文本。
我正在Windows 10上运行GUI vim 8.0。我运行的代码是(不是整个程序):
" move appropriate files
silent! exe '!start /MIN copy ' fnameescape(fileName) . ' ' . fnameescape(compileDir) . '\cur' . fnameescape(fileName)
silent! exe '!start /MIN echo ' . curDir . ' >'. compileDir .'\curDir.txt'
silent! exe '!start /MIN echo ' . fileName . ' >' . compileDir.'\fileName.txt'
silent! exe 'cd' fnameescape(compileDir)
"compile and move the pdf
silent! exe '!compile.bat'
silent! exe '!mv ' . l:Name . '.pdf ' . l:curDir
我知道这是否效率低下,但是我只需要快速工作即可。找到它们后,我尝试使用vim内置函数。请注意,此代码可以在没有“ start / MIN”的情况下正常工作