2012-10-31 47 views
1

我用几个不同的插件起到让C#在vim编译,即Visual_studio.vimvim-csharpvim-csharp,但即使是开始 编译只有一个是OrangeT的vim-csharp,但是当我工作的XNA解决方案,所有 的XNA引用未发现:如何使用vim构建或编译VS2010/XNA4项目?

The type or namespace name 'Xna' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) 

有什么我可以做与VIM C#/ XNA更好的工作?

如果是相关的:Windows7x64bit VisualStudio2010 XNA4 Python2.7x64bit gVim73

回答

1

您使用的是Windows,所以你总是要建立在与MSBuild的命令行选项。我相信你有在vim的工具来运行一个宏,指定一个相对于当前缓冲区路径的项目。

命令行看起来像

C:\Windows\Microsoft.NET\Framework\(version)\msbuild.exe "project file path" 

这应该在你的项目的引用时建设拉动,所以你会避免这些错误。

+0

我应该提到,我也试过(使用cygwin,如果这是相关的),并让它运行一两分钟,没有什么似乎发生,而VS10只需要一秒钟。必须杀死这个过程。 – TankorSmash

+0

所以澄清,你在cygwin中使用vim? –

+0

划痕,这次在cmd.exe中再次尝试它,它似乎工作。不,使用gVim,但想在这里使用cygwin作为命令行工具。发生了所有事情。请给我一点时间来正确设置,我会接受你的答案。 – TankorSmash

3

@Reacher镀金有正确的想法,所以我想给他答案,但我的最终解决方案是使用我已经加入到我的PATH在某个时刻msbuild.exe,并结合其与this solution使一个build.bat文件和:make

  1. *.sln文件夹中我写了一个build.bat文件看起来像:msbuild.exe "C:\path\to\*.sln"
  2. set makeprg=build.bat
  3. ORlet &makeprg='"C:\path with spaces\build.bat"' 如果你有在文件路径中有空格。这是let而不是set带有撇号,然后在路径周围加上一个双引号,并且在空格字符之前没有斜线。
  4. set errorformat=\ %#%f(%l\\\,%c):\ %m来格式化错误消息。
  5. :make在该目录内的文件中
  6. :cl列出所有错误。

编辑:我不知道为什么,但把&makeprg放在你的vimrc中似乎没有做任何事情。希望有人能向我解释。你必须“手动”输入它:yy切换到当前文件<C-R>0<Bksp><CR>

+0

我想知道是否可以编写一个vim脚本来搜索父目录(或相关路径...)并自动设置makeprg。它可以节省您编写每个新解决方案的build.bats。 –