从emacs编译缓冲区中删除误报
在我从事的一些项目中,编译输出有一些行不是错误,但会混淆Emacs,因为它们是相似的 当我使用从emacs编译缓冲区中删除误报,emacs,compilation,elisp,Emacs,Compilation,Elisp,在我从事的一些项目中,编译输出有一些行不是错误,但会混淆Emacs,因为它们是相似的 当我使用下一个错误时,这些误报非常不方便,而且由于它们被视为错误而分散视觉注意力 我可以生成一个正则表达式来过滤掉那些误报。我想避免的是弄乱compile.el中内置的regexp;它们非常复杂,更重要的是,它们可能会在Emacs升级中发生变化 所以我要寻找的是一种告诉compile.el什么regexp是误报的方法(可能使用编译过滤器钩子),这样它们就不会被标记为错误 想法?你可以尝试以下方法 (add-ho
下一个错误时,这些误报非常不方便,而且由于它们被视为错误而分散视觉注意力
我可以生成一个正则表达式来过滤掉那些误报。我想避免的是弄乱compile.el中内置的regexp;它们非常复杂,更重要的是,它们可能会在Emacs升级中发生变化
所以我要寻找的是一种告诉compile.el什么regexp是误报的方法(可能使用编译过滤器钩子
),这样它们就不会被标记为错误
想法?你可以尝试以下方法
(add-hook 'compilation-mode-hook
(lambda ()
(font-lock-add-keywords nil
'(("my-regexp"
(0 '(face nil font-lock-face nil
compilation-message nil help-echo nil mouse-face nil) t)))
'append)))
这是丑陋和脆弱的,因此您可能希望M-x报告emacs bug
,并要求提供一个新特性,让您以更清晰的方式指定它
除了@Stefan提到的自动筛选之外,您还可以根据需要手动筛选。
像*编译*
和*grep*
这样的缓冲区就是:缓冲区。因此,您可以编辑它们。(对于某些此类缓冲区,需要先关闭只读。)
然后使用刷新行
或保留行
<代码>下一个错误
等等。做你想做的事情:他们总是处理编辑好的点击列表
(事实上,像*grep*
这样的缓冲区在默认情况下是可写的。)
*grep*
)来浏览相应的代码。这样做的优点是很容易动态过滤点击,并且您可以按各种排序顺序在点击的任何子集之间循环
将它与Emacsgrep
一起使用,可以提供两个级别的regexp搜索:1)grep
regexp和2)当前输入regexp(使用C-C`)。您可以使用渐进式完成(S-SPC
)来添加额外的regexp以进行匹配