如何发现掌舵缓冲区中使用了哪些面孔?
How to discover which faces are used in helm buffers?
我想更改 *helm ag*
缓冲区中某些内容的外观。 None 我发现在某个点使用了哪张脸的常用技巧(我最喜欢的是 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
) 在所有其他行中突出显示,但不会在所选行中突出显示。
右边是一些适合可能候选人的面部自定义缓冲区。 helm-match
已设置为红色前景,但这并未反映在 *helm-ag*
缓冲区中。这似乎表明 helm-match
不是我要找的鱼。
首先是你的“鱼”:我认为你指的脸是helm-match
。
如果我需要找到给定的面孔但不能在带有该面孔的文本上放置点,我会亲自尝试以下几种不同的策略:
- 使用
M-x describe-face
,猜测姓名的第一部分可能是什么(在本例中为 helm
),然后浏览可能以此开头的候选人。
- 转到可能定义该面的代码(在本例中为
helm-ag.el
,您可以使用 M-x describe-function RET helm-ag
找到它),然后在该文件中搜索 face
以找到可能匹配。
- 执行
M-x customize-face
并输入 'all faces'
,寻找 helm-*
面孔并尝试找到姓名和面孔(因为您可以在此缓冲区中看到面孔样本)与您正在寻找的相匹配。
这些方法中的 none 可能与您希望的一样直接,并且可能有更快的解决方案,但这是我会做的(并且已经做了)。在这种情况下,我用方法 #2 找到了脸。
更新:
这是我的设置的屏幕截图:
请注意,对我而言,相关面孔是 helm-match
,它继承自 replace.el
中的 match
。另外,请注意匹配项在 highlighted/selected 行中出现的方式与其他行相比的差异不是由于不同的面,而是由于行突出显示的背景颜色如何影响颜色,因为可以当我在此处突出显示示例文本时可以看到:
更新 2:
事实证明 OP 使用的是 helm-ag-do-grep
,它在另一个文件中定义 - helm-grep.el
。这是该代码的 face-setting 部分:
;;; 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)
我想 helm-grep-match
就是您要找的。如果不是,则有问题的面孔很可能出现在上面的代码片段中,并且所有这些面孔都应该可以使用 customize-face
进行自定义。此代码还使用上述方法 #2 进行了追踪。
与@elethan 的#3 类似的方法:
调用list-faces-display
,它会显示所有面孔的列表
按字母顺序排列。
搜索 "helm".
ag
本身使用颜色来突出显示匹配项。 Helm 使用这些颜色并忽略 helm-grep-match
除非 helm-grep-ag-command
包含 --nocolors
选项。
因此有两种方法:
使用 --color-match
选项将您想要的颜色设置为 helm-grep-ag-command
中的 ag
。
禁用ag
's match highlighting with the --nocolor
opiton in helm-grep-ag-command
and set Emacs'helm-match
或helm-grep-match
(不完全确定哪个是正确的)来指定匹配颜色。由于第二个选项使用 elisp 来处理着色,因此它可能比第一个慢。
在这两种情况下,匹配突出显示将被 helm-selection
覆盖,因此在所选行上突出显示匹配的唯一方法是 helm-selection
不 指定背景或前景,从而留下匹配突出显示的机会。
我想更改 *helm ag*
缓冲区中某些内容的外观。 None 我发现在某个点使用了哪张脸的常用技巧(我最喜欢的是 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
) 在所有其他行中突出显示,但不会在所选行中突出显示。
右边是一些适合可能候选人的面部自定义缓冲区。 helm-match
已设置为红色前景,但这并未反映在 *helm-ag*
缓冲区中。这似乎表明 helm-match
不是我要找的鱼。
首先是你的“鱼”:我认为你指的脸是helm-match
。
如果我需要找到给定的面孔但不能在带有该面孔的文本上放置点,我会亲自尝试以下几种不同的策略:
- 使用
M-x describe-face
,猜测姓名的第一部分可能是什么(在本例中为helm
),然后浏览可能以此开头的候选人。 - 转到可能定义该面的代码(在本例中为
helm-ag.el
,您可以使用M-x describe-function RET helm-ag
找到它),然后在该文件中搜索face
以找到可能匹配。 - 执行
M-x customize-face
并输入'all faces'
,寻找helm-*
面孔并尝试找到姓名和面孔(因为您可以在此缓冲区中看到面孔样本)与您正在寻找的相匹配。
这些方法中的 none 可能与您希望的一样直接,并且可能有更快的解决方案,但这是我会做的(并且已经做了)。在这种情况下,我用方法 #2 找到了脸。
更新:
这是我的设置的屏幕截图:
请注意,对我而言,相关面孔是 helm-match
,它继承自 replace.el
中的 match
。另外,请注意匹配项在 highlighted/selected 行中出现的方式与其他行相比的差异不是由于不同的面,而是由于行突出显示的背景颜色如何影响颜色,因为可以当我在此处突出显示示例文本时可以看到:
更新 2:
事实证明 OP 使用的是 helm-ag-do-grep
,它在另一个文件中定义 - helm-grep.el
。这是该代码的 face-setting 部分:
;;; 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)
我想 helm-grep-match
就是您要找的。如果不是,则有问题的面孔很可能出现在上面的代码片段中,并且所有这些面孔都应该可以使用 customize-face
进行自定义。此代码还使用上述方法 #2 进行了追踪。
与@elethan 的#3 类似的方法:
调用
list-faces-display
,它会显示所有面孔的列表 按字母顺序排列。搜索 "helm".
ag
本身使用颜色来突出显示匹配项。 Helm 使用这些颜色并忽略 helm-grep-match
除非 helm-grep-ag-command
包含 --nocolors
选项。
因此有两种方法:
使用
--color-match
选项将您想要的颜色设置为helm-grep-ag-command
中的ag
。禁用
ag
's match highlighting with the--nocolor
opiton inhelm-grep-ag-command
and set Emacs'helm-match
或helm-grep-match
(不完全确定哪个是正确的)来指定匹配颜色。由于第二个选项使用 elisp 来处理着色,因此它可能比第一个慢。
在这两种情况下,匹配突出显示将被 helm-selection
覆盖,因此在所选行上突出显示匹配的唯一方法是 helm-selection
不 指定背景或前景,从而留下匹配突出显示的机会。