Vim 定义用于生成和加载错误文件的命令
我想定义一个命令,该命令将首先生成当前的Vim 定义用于生成和加载错误文件的命令,vim,go,Vim,Go,我想定义一个命令,该命令将首先生成当前的Go源文件并加载errors.err文件,以便进一步使用:cnext或:clist等命令 我所拥有的: 我将以下行添加到我的.vimrc: command Gobuild !go build %:t | grep -v "^\#" | tee errors.err 但是我必须在:Gobuild之后执行:cfile,因为这不是自动完成的。如何自动加载错误.err文件?试图将:cfile附加到命令,但没有帮助。加载后自动删除错误。err也很有用 我知道有一种
Go
源文件并加载errors.err文件,以便进一步使用:cnext
或:clist
等命令
我所拥有的:
我将以下行添加到我的.vimrc
:
command Gobuild !go build %:t | grep -v "^\#" | tee errors.err
但是我必须在:Gobuild
之后执行:cfile
,因为这不是自动完成的。如何自动加载错误.err
文件?试图将:cfile
附加到命令,但没有帮助。加载后自动删除错误。err
也很有用
我知道有一种方法可以用make
做类似的事情,但我不喜欢它
UPD:一个笨拙的术语解决方案(在我深入研究建议的解决方案之前):
这里@
防止make
回显命令,grep
过滤掉#命令行参数
行,并且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
和一系列快速修复相关命令的组合,如:copen
或:cnext
。在~/.vimrc
中添加几行就可以了
作为一些示例代码和。您不喜欢
:make
?@romainl它看起来怎么样?对我来说,以下方法很有效::make src=“%:t”
,而makefile
是make:
go build${src}
,但是长的:make命令并不方便。我不想创建makefile,因为我通常在随机文件夹中创建随机文件。@o2genum您不需要创建任何makefile,请参见:h'makeprg'
。上次更新(请参见我的问题)是我如何使用makeprg
完成的。很好,谢谢。当我问你不喜欢:make
:你的:make
时,这就是我想说的。基于:make
的解决方案是干净而可靠的。有什么不喜欢的?
autocmd FileType go set makeprg=go\ build\ %:t\ 2>&1\\\|grep\ -v\ '^\\#'\\\|tee
command Gorun !./%:r