Emacs 多个 hl-line faces/change 行挂钩?
Emacs multiple hl-line faces/change line hook?
当我遇到问题时,我正在更新我的 emacs(我使用 doom btw)配置。我想为所有移动操作闪烁当前行。我还希望对当前行产生持续影响。我可以做一个或另一个,但到目前为止我找不到同时做这两个的方法。
目前,我在我希望始终显示的行周围有一个框。我希望背景在任何移动时都闪烁(例如线条变化、帧聚焦)。我可以使用 hl-line+.el 在它移动时使线闪烁,但这似乎是在选择 hl-line 面。它迫使我在恒定的线条高亮和运动中的线条高亮之间做出选择。我也可以使用 nav-flash 在更改缓冲区时闪烁,但这不会对线路更改做出反应。有没有我可以添加 nav-flash 的挂钩?有没有一种方法可以覆盖 hl-line+ 以使用不同的面孔并允许该线也正常突出显示?对于它的价值,这是我当前的配置设置:
((hl-line &override)
:background bg
:box '(
:color "#fb7d32"
:line-width -1))
(nav-flash-face
:foreground bg
:background "#fb7d32")
非常感谢任何建议,我会认为自己是中级 emacs 用户,所以我不害怕编写自己的函数和挂钩,如果这是这样的话。无论如何,提前感谢您的帮助和建议!
我在安装了 doom 的 emacs 26.3 上。
hl-line-flash
,从 hl-line+.el
开始只使用 hl-line-highlight
。
并且该函数只是重用了现有的叠加层。该叠加层(由 hl-line-make-overlay
创建)使用变量 hl-line-face
.
的值
你可以做的是用 :around
建议来建议 hl-line-flash
,这样它就可以做到这一点:
- 将
hl-line-face
绑定到您想要闪光的脸上。
- 删除现有叠加层 (
hl-line-overlay
)。
- 然后调用
hl-line-highlight-now
的原始定义。
毫无疑问,还有其他方法可以满足您的需求。一种方法是只定义您自己的命令来代替 hl-line-flash
,使用与上述建议描述执行相同操作的代码。只需围绕对 hl-line-highlight-now
的调用执行此操作,以便该函数使用您想要闪烁的面孔。
当我遇到问题时,我正在更新我的 emacs(我使用 doom btw)配置。我想为所有移动操作闪烁当前行。我还希望对当前行产生持续影响。我可以做一个或另一个,但到目前为止我找不到同时做这两个的方法。
目前,我在我希望始终显示的行周围有一个框。我希望背景在任何移动时都闪烁(例如线条变化、帧聚焦)。我可以使用 hl-line+.el 在它移动时使线闪烁,但这似乎是在选择 hl-line 面。它迫使我在恒定的线条高亮和运动中的线条高亮之间做出选择。我也可以使用 nav-flash 在更改缓冲区时闪烁,但这不会对线路更改做出反应。有没有我可以添加 nav-flash 的挂钩?有没有一种方法可以覆盖 hl-line+ 以使用不同的面孔并允许该线也正常突出显示?对于它的价值,这是我当前的配置设置:
((hl-line &override)
:background bg
:box '(
:color "#fb7d32"
:line-width -1))
(nav-flash-face
:foreground bg
:background "#fb7d32")
非常感谢任何建议,我会认为自己是中级 emacs 用户,所以我不害怕编写自己的函数和挂钩,如果这是这样的话。无论如何,提前感谢您的帮助和建议!
我在安装了 doom 的 emacs 26.3 上。
hl-line-flash
,从 hl-line+.el
开始只使用 hl-line-highlight
。
并且该函数只是重用了现有的叠加层。该叠加层(由 hl-line-make-overlay
创建)使用变量 hl-line-face
.
你可以做的是用 :around
建议来建议 hl-line-flash
,这样它就可以做到这一点:
- 将
hl-line-face
绑定到您想要闪光的脸上。 - 删除现有叠加层 (
hl-line-overlay
)。 - 然后调用
hl-line-highlight-now
的原始定义。
毫无疑问,还有其他方法可以满足您的需求。一种方法是只定义您自己的命令来代替 hl-line-flash
,使用与上述建议描述执行相同操作的代码。只需围绕对 hl-line-highlight-now
的调用执行此操作,以便该函数使用您想要闪烁的面孔。