gpt4 book ai didi

vim - 使用 errormarker 获取 AsyncCommand 吗?

转载 作者:行者123 更新时间:2023-12-04 06:09:18 26 4
gpt4 key购买 nike

我找到了 AsyncCommandStackOverflow ,并发现它是一个了不起的工具!我试图让它与 errormarker plugin 一起工作,但遇到了一些问题。

我不知道到底是什么问题。我跟踪了errormarker 的脚本,发现错误使用以下脚本钩住QuickFixCmdPost事件,并将标记设置为源文件的行。

augroup errormarker
autocmd QuickFixCmdPost make call <SID>SetErrorMarkers()
augroup END

根据 :help ,第二个参数( make )是 pattern文件(例如: *.html )。我不知道什么是 make文件模式,我试过了
autocmd QuickFixCmdPost AsyncMake call <SID>SetErrorMarkers()

它不起作用(当然)。但我不知道我还能做什么。我在谷歌上搜索了“AsyncCommand errormarker”,但一无所获。

有什么意见吗?任何建议表示赞赏。提前致谢。

最佳答案

AsyncCommand 使用 cgetfile在封面下填写 quickfix 窗口。看来cgetfile不会触发 QuickFixCmdPost事件。为了得到SetErrorMarkers()在正确的时刻(或根本没有)开火。我们需要创建一个新事件或将错误标记插件耦合到 AsyncCommand 中。由于我们都是优秀且不懒惰的程序员,因此我建议使用事件方法,因为它提供了更多的灵活性。

既然您已经在编辑一个插件,我希望您不介意对 AsyncCommand 插件做一个小小的补充。我假设您拥有来自 github 的最新版本.

我们将创建一个新的用户事件,AsyncCommand 将在 cgetfile 之后触发该事件。 .在文件中:autoload/asynchandler.vim在第 63 行之后插入以下行。

doautocmd User AsyncCommandQuickFixCmdPost

应该是这样的:
exe 'botright ' . self.mode . "open"
let cmd = self.command . ' ' . a:temp_file_name
exe cmd
doautocmd User AsyncCommandQuickFixCmdPost
if type(self.title) == type("") && self.title != ""

现在您可以将错误标记插件编辑为如下所示:
augroup errormarker
autocmd QuickFixCmdPost make call <SID>SetErrorMarkers()
autocmd User AsyncCommandQuickFixCmdPost call <SID>SetErrorMarkers()
augroup END

关于vim - 使用 errormarker 获取 AsyncCommand 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7963021/

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