猿问

定义用于构建和加载错误文件的命令

我想定义一个命令,该命令将首先构建当前的Go源文件并加载 errors.err 文件以进一步使用诸如:cnextor之类的命令:clist。


是)我有的:


我将以下行添加到我的.vimrc:


command Gobuild !go build %:t | grep -v "^\#" | tee errors.err

但是我必须在:cfile之后做:Gobuild,因为它不是自动完成的。如何自动加载errors.err文件?试图附加:cfile到命令,它没有帮助。errors.err加载后自动删除也很有用。


我知道有一种方法可以用 做这样的事情make,但我不喜欢它。


UPD:一个笨拙的临时解决方案(在我深入研究建议的解决方案之前):


function GoBuild()

    silent !echo -e "make:\n\t@go build \${src} | grep -v '^\#' | tee" > %:t"_makefile"

    make -f %:t"_makefile" src="%:t"

    silent !rm %:t"_makefile"

endfunction


command Gobuild call GoBuild()

这里@防止make回显命令,grep过滤掉#command line arguments行,并且tee不打扰make错误代码grep(grep返回错误代码,注意过滤掉) -tee始终返回 0,OK错误代码。


UPD:更好的解决方案


autocmd FileType go set makeprg=go\ build\ %:t\ 2>&1\\\|grep\ -v\ '^\\#'\\\|tee

command Gorun !./%:r


holdtom
浏览 155回答 1
1回答

开满天机

一般来说,整个构建和报告错误业务围绕着两个选项:'makeprg'and'errorformat'和:make一系列与 quickfix 相关的命令的组合,例如:copenor :cnext。~/.vimrc您只需要在其中添加几行即可。
随时随地看视频慕课网APP

相关分类

Go
我要回答