繁体   English   中英

将makeprg设置为VIM功能?

[英]Set makeprg to VIM function?

我正在使用VIM处理Visual Studio解决方案,我编写了一个函数,从当前文件向上搜索文件系统并找到第一个* .sln文件。

我想做的是这样的:

function! BuildSLN()
    " FindSLN is my function that locates the sln "
    let slnfile = FindSLN()
    if slnfile != ""
        execute "!devenv " . slnfile . " /Build Debug"
    endif
endfunction

CompilerSet makeprg=:call BuildSLN()

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

这可能吗?

我找到了一个解决方案,虽然技术上不是我自己问题的答案:)

因为每当我进入C#或VB.net缓冲区时我都会加载编译器设置,我只是这样做:

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

在编译器设置文件中。 这给了我想要的效果,但是从技术上讲它并没有将makeprg设置为一个函数,该函数将在以下情况下进行评估:make被调用,就像最初请求的那样。

您可以定义映射/函数/命令/ whatver:

  • 确保正确设置makeprg
  • 执行:make
  • 如果出现错误,执行a:copen。

就个人而言,当我从一个目录( 我与一个项目关联 )编辑一个文件时,我宁愿设置makeprg。 还有一些映射可以切换编译模式方面(调试/发布,后台/不兼容,目标(交叉编译/不),多线程编译/不等)。 每次更改其中一个方面时,我都会更新makeprg。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM