gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:48 25 4
gpt4 key购买 nike

我想定义一个命令,它将首先构建当前的 Go 源文件并加载 errors.err 文件以供进一步使用 :cnext:列表

我有什么:

我在我的 .vimrc 中添加了以下行:

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

但我必须在 :Gobuild 之后执行 :cfile,因为它不是自动完成的。如何自动加载 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 不会用来自 grep 的错误代码打扰 make(grep 返回错误代码,但没有注意过滤掉) — tee 始终返回 0,OK 错误代码。

UPD:更好的解决方案

autocmd FileType go set makeprg=go\ build\ %:t\ 2>&1\\\|grep\ -v\ '^\\#'\\\|tee
command Gorun !./%:r

最佳答案

一般来说,整个构建和报告错误业务围绕着两个选项:'makeprg''errorformat' 以及 :make 的组合code> 和一堆与 quickfix 相关的命令,如 :copen:cnext。在你的 ~/.vimrc 中添加几行应该是你所需要的。

This article作为一些示例代码和 here is a full-fledged plugin .

关于vim - 定义用于构建和加载错误文件的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com