我正在开发一个C ++应用程序,每当我使用:make my_project.vcxproj
和:compiler msvc
以及:set makeprg=msbuild
调用:set shellpipe=>%s 2>&1
时,vim会打开一个名为{{的Build Started 26\03\2014
空白文件1}}。
我尝试使用shellpipe
选项:将其设置为空白,:set shellpipe=
导致vim在新窗口中打开msbuild并在那里显示结果,并且不向quickfix。设置:set shellpipe=>
会打开一个类似命名的空白文件,但会丢失部分日期。
如何让vim避免为make命令的输出打开一个新的缓冲区?
答案 0 :(得分:1)
结果是转到quickfix,可能是第一行之一是关于构建开始的消息。
Vim可能会将该行解释为包含文件名和行号的错误/警告消息,并尝试跳转到该行。
:make
命令调用makeprg
,然后跳转到第一个错误。您可以使用:make!
来避免跳转到第一个错误,这会阻止打开名为" Build Stared ..."的缓冲区。
您还可以尝试调整由errorformat
命令设置的:compiler
,以便让Vim正确解析quickfix内容,还可以使用:cn
和{ {1}}导航它。您可以使用mscv编译器作为起点 - 它可以在$ VIMRUNTIME / compiler文件夹中找到。您可能可以基于cs.vim(在同一文件夹上),其中:cp
为MS Visual Studio C#设置。