如何在 Windows 上使用 Vim 运行 “:compiler msvc” 和 “:comp msbuild”

How to run “:compiler msvc” and “:comp msbuild” with Vim on Windows?

本文关键字:compiler msvc msbuild comp 运行 Windows Vim      更新时间:2023-10-16

我有 VS Express(2012)用于桌面。我是否也获得了 NMAKE.EXE 计划?

http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx - Microsoft 程序维护实用程序 (NMAKE.EXE) 是构建项目的工具 基于描述文件中包含的命令。

当我在运行:compiler msvc后运行:make时,shell 返回消息"'nmake'未被识别为内部或外部命令"。如何使用这些命令编译C++程序?工具NMAKE.EXE是否与"nmake"命令有关系?


http://msdn.microsoft.com/en-us/library/wea2sca5(v=vs.90).aspx - MSBuild 是 Microsoft 和 Visual Studio 的新构建平台。

http://msdn.microsoft.com/en-us/library/dd293626.aspx - 您可以使用 MSBuild 工具,用于C++从 命令提示符。生成过程由 中的信息控制 可以创建和编辑的项目文件 (.vcxproj)。该项目 File 根据构建阶段、条件和 事件。

我是否也因为我的 VS Express for Desktop 而购买了 MSBuild 工具?当我在运行:compiler msbuild后使用 :make 时,shell 返回消息"'msbuild'未被识别为内部或外部命令"。msbuild.vimMSBuild 工具有关系吗?

msbuild.vim 的维护者说:"我制作了编译脚本。 使用 .NET 的 C# 项目...我不知道它是否对C++有用......"

如何在 Vim 中:make之前运行:compiler msbuild进行编译?


关于编译C++源文件等程序,只有两个问题,请用详细说明回答:

  1. 如何使用:compiler msvc
  2. 如何使用:compiler msbuild

当我在运行:编译器msbuild后使用:make时,shell返回 消息"'MSbuild'未被识别为内部或外部 命令,"。 msbuild.vim 与 MSBuild 工具有关系吗?

是的。

若要在命令提示符下启用 msbuild,只需将计算机上安装的 .net4 框架的路径添加到 PATH 环境变量。以下内容在Windows上对我有用:

您可以通过右键单击"计算机",单击"属性"并单击左侧导航栏上的"高级系统设置"来访问环境变量。在下一个对话框泥沼中,单击"环境变量",向下滚动到"PATH"并对其进行编辑以包含框架的路径(不要忘记此处最后一个条目后的";")。

作为参考,我的路径是C:WindowsMicrosoft.NETFramework64v4.0.30319.[1]

虽然我只将它用于 C# 项目,但我想它也适用于C++。请记住,您必须项目目录中运行msbuild,否则 msbuild 将无法找到您的项目。

为了完整起见,这里是我的 vimrc 的片段(OP 已经通过电子邮件获得)。

noremap <F4> :<C-U>silent make<CR>:redraw!<CR>
au FileType cs compiler msbuild

当然,总是欢迎此编译器脚本的补丁和添加!

问候

[1]:如何使用 Windows SDK 7.1 从命令行运行 msbuild?

快速搜索一下,发现:入门 - 使用 VIM 进行 C/C++ 编程,这可能是一个很好的起点。

正如user786653所提到的,这是失败的,因为你的PATH不包含nmake.exe所在的目录。您可以使用以下命令检查您的路径

:echo $PATH 

Vim 不会取代底层的构建功能,它只是包装它。

  1. 从 Visual Studio 命令提示符启动 gVim。
  2. 在测试目录中创建新文件:

    测试.cpp

    #include <iostream>
    int main() { 
        printf("hello world.");
        return 0;
    }
    

    生成文件

    all:
        cl test.cpp 
    
  3. 设置编译器 (gVim)

    :compiler msvc
    
  4. 编译 (gVim)

    :make
    

我没有msbuild.vim脚本,但是通过将"make program"设置为msbuild.exe

:set makeprg=msbuild

可以通过从包含解决方案 (.sln) 或项目 (.vxcproj) 文件的目录运行 :make 进行生成,也可以使用 msBuild.exe 命令行,如下所示:

:make c:TestTest.sln  /t:Rebuild /p:Configuration=Debug

编译后,您可以使用

:copen 

并使用(n 表示下一个,p 表示上一个,r 表示快退到第一个错误)导航错误

:cn 
:cp 
:cr