Emacs 如何发现头盔缓冲器中使用了哪些面?
我希望更改Emacs 如何发现头盔缓冲器中使用了哪些面?,emacs,emacs-helm,Emacs,Emacs Helm,我希望更改*helm ag*缓冲区中某些内容的外观。我常用的发现某个点正在使用哪张脸的技巧(我最喜欢的是M-x customize face,该点位于感兴趣的区域)都不管用,因为没有(明显的)方法可以控制头盔缓冲区中的光标 我的问题是: 教我钓鱼,养活我一辈子:我如何才能发现缓冲区中使用的面孔,而我无法将光标放在其中 给我一条鱼,喂我一天:在*helm ag*缓冲区中,哪个面用于突出显示当前选定行上的模式匹配 更新 对于由helm ag命令创建的*helm ag*缓冲区,相关面为helm m
*helm ag*
缓冲区中某些内容的外观。我常用的发现某个点正在使用哪张脸的技巧(我最喜欢的是M-x customize face
,该点位于感兴趣的区域)都不管用,因为没有(明显的)方法可以控制头盔缓冲区中的光标
我的问题是:
- 教我钓鱼,养活我一辈子:我如何才能发现缓冲区中使用的面孔,而我无法将光标放在其中
- 给我一条鱼,喂我一天:在
缓冲区中,哪个面用于突出显示当前选定行上的模式匹配*helm ag*
helm ag
命令创建的*helm ag*
缓冲区,相关面为helm match
。但是,在由helm do grep ag
命令创建的*helm ag*
缓冲区(无破折号!)中,helm match
面似乎没有效果,如下面的进一步信息所述
进一步资料
下面是一个没有启用自定义主题的emacs会话的图片
左下角有一个*helm ag*
缓冲区,用于搜索defun
。选择缓冲区中的第三行。匹配(defun
)将在所有其他行中高亮显示,但不会在所选行中高亮显示
右侧是一些可能的候选人脸自定义缓冲区<代码>头盔匹配已设置为具有红色前景,但这不会反映在*头盔ag*
缓冲区中。这似乎表明helm match
不是我要找的鱼。首先是你的“鱼”:我想你指的脸是helm match
如果我需要找到一张给定的脸,并且不能用这张脸在文本上指出要点,我个人会尝试以下几种不同的策略:
M-x descripe face
,猜测名字的第一部分可能是什么(在本例中为helm
),然后扫描以该名字开头的可能的候选人物M-x描述函数RET helm ag
找到helm ag.el
),并在该文件中搜索面
,以找到可能的匹配项M-x自定义面
并输入和“所有面”
,查找helm-*
面,并尝试查找与您要查找的面匹配的名称和面(因为您可以在此缓冲区中看到该面的样本)helm match
,它继承自replace.el中的match
。另外,请注意,与其他行相比,高亮显示/选定行中匹配的显示方式之间的差异不是由于不同的面,而是由高亮显示行的背景色如何影响颜色引起的,如我在此处高亮显示示例文本时所示:
更新2:
原来OP使用的是另一个文件中定义的helm-ag-do-grep
,helm-grep.el
。下面是该代码的面部设置部分:
;;; Faces
;;
;;
(defgroup helm-grep-faces nil
"Customize the appearance of helm-grep."
:prefix "helm-"
:group 'helm-grep
:group 'helm-faces)
(defface helm-grep-match
'((((background light)) :foreground "#b00000")
(((background dark)) :foreground "gold1"))
"Face used to highlight grep matches."
:group 'helm-grep-faces)
(defface helm-grep-file
'((t (:foreground "BlueViolet"
:underline t)))
"Face used to highlight grep results filenames."
:group 'helm-grep-faces)
(defface helm-grep-lineno
'((t (:foreground "Darkorange1")))
"Face used to highlight grep number lines."
:group 'helm-grep-faces)
(defface helm-grep-finish
'((t (:foreground "Green")))
"Face used in mode line when grep is finish."
:group 'helm-grep-faces)
(defface helm-grep-cmd-line
'((t (:inherit diff-added)))
"Face used to highlight grep command line when no results."
:group 'helm-grep-faces)
我想掌舵格雷普比赛
就是你要找的。如果不是,则所讨论的面很可能位于上述代码段中,所有这些面都应该可以使用customizeface
进行自定义。该代码还使用上述方法2进行了跟踪。类似于@elethan的方法3:
- 调用列表面显示
,它将显示所有面的列表
按字母顺序
ag
本身使用颜色突出显示匹配项。头盔使用这些颜色并忽略头盔grep匹配
,除非头盔grep ag命令
包含--nocolors
选项
因此,有两种方法:
helm grep ag命令中,使用--color match
选项将所需颜色设置为ag
helm grep ag命令中的--nocolor
选项禁用ag
的匹配高亮显示,并设置Emacs的helm match
或helm grep match
(不完全确定此处哪一个是正确的)以指定匹配颜色。由于第二个选项使用elisp处理着色,因此它可能比第一个选项慢
头盔选择
覆盖,因此在所选行上获得比赛突出显示的唯一方法是让头盔选择
不指定背景或前景,从而留下观看比赛突出显示的机会
参考资料:不错!我不知道这个命令。这个命令提供的列表似乎比
自定义面
提供的列表更容易浏览(特别是为了OP的目的),因为只显示样本。列表面显示
(在头盔俯冲
的帮助下)是我最初尝试的第一道攻击线。但这并没有让我的生活发生任何变化。(参见问题编辑。)头盔匹配是我尝试的第一件事。这似乎不是我的鱼:请参阅我问题的编辑,了解我为什么认为是这样。@jacg,这很奇怪。您正在使用哪个版本的emacs和helm ag
?在我的例子中,将匹配面设置为helm match