首页 > 解决方案 > gvim 命令行模式 :!start [windows command] 返回 Command not found 错误信息

问题描述

我正在尝试运行将某些文件复制到新目录的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”的情况下可以正常工作

标签: windowsvimcmd

解决方案


推荐阅读