gvim命令行模式:!start [windows命令]返回命令未找到错误消息

时间:2018-12-29 18:53:18

标签: windows vim cmd

我试图运行一个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”的情况下正常工作

0 个答案:

没有答案