Emacs - 如何使用颜色直观地强调光标所在的功能?

时间:2012-07-09 11:52:08

标签: emacs text-editor

受ia Writer焦点模式的启发,我有兴趣在emacs中使用字体+背景颜色来强调光标所在的功能,并在视觉上将其余代码作为背景提示(我使用C ++,但不管编程语言如何,这都很好。

理想情况下,函数外部代码的字体颜色将变暗(这是焦点模式的工作方式)。一个更简单的解决方案可能是为光标当前所在的函数稍微改变背景颜色。如何做到这一点?

2 个答案:

答案 0 :(得分:2)

AFAIK没有这样的东西。如果你想让它自己写,这是一个草图:

  1. 编写一个确定当前函数边界的例程。最简单的方法是使用(bounds-of-thing-at-point 'defun)

  2. 编写一个例程,当给定区域的边界gets the background face property of the region时,区域变暗,并将新面部应用于该区域。

  3. 使用调用此变量原始值的例程覆盖font-lock-fontify-region-function(请参阅here),区分给定的当前defun区域(使用#1),以及然后将例程#2应用到剩余的区域。

  4. 我更喜欢使用jit-lock-register覆盖字体锁,因为你需要控制fontification的顺序。

    HTH!

答案 1 :(得分:1)

使用哪种功能模式来突出显示当前功能。试试它是否对你有所帮助,看看这篇文章是否对你有帮助:

Emacs Setting which-function-mode