2011-03-29 72 views
2

我正在使用VIM处理Visual Studio解决方案,并编写了一个从当前文件向上搜索文件系统并查找第一个* .sln文件的函数。将makeprg设置为VIM功能?

我想要做的是这样的:

​​

这样一来,我可以用我的当前设置的键绑定为:make来构建解决方案文件。

这可能吗?

+1

我发现了一个解决方案,虽然在技术上不是我自己的问题的答案:)因为我每次进入C#或VB.net缓冲区时加载编译器设置,我只是在做一个'let&l:makeprg =' “devenv.com”。 FindSLN()。 '“/ Build Debug”“在编译器设置文件中。我会留下这个问题,但让其他人有机会回答。 – rossipedia 2011-03-29 17:06:57

+0

最好将解决方案作为答案发布。 – 2011-07-31 09:58:39

+0

尽管没有严格回答您的问题,但我发现我最喜欢的工作流是将':cd'(或更改':Ex'中的dir)到项目的根目录。然后你可以简单地':set makeprg = msbuild'。 – 2013-01-30 13:50:49

回答

3

我已经找到了解决办法,虽然不是技术上的答案,我自己的问题:)

由于我加载每当我进入一个C#或VB.net缓冲编译器设置,我只是要做到:

let &l:makeprg='"devenv.com "' . FindSLN() . '" /Build Debug"' 

在编译器设置文件中。这给了我想要的效果,但是它在技术上不会将makeprg设置为在调用:make时将被评估的函数,就像最初请求的那样。

0

您可以定义的映射/功能/命令/ whatver说:

  • 确保makeprg是正确设置
  • 执行:使
  • 执行:C打开,如果有一个错误。

就我个人而言,当我编辑目录中的文件(that I associate to a project)时,我宁愿设置makeprg。和几个映射切换编译模式方面(调试/释放,背景/否,目标(交叉编译/否),多线程编译/否)等。每当其中一个方面发生变化时,我都会更新makeprg。