让Emacs高亮语法关键词对。

3
我正在学习如何使用Emacs编写代码(c++)。我想知道是否有一个包(我正在使用Emacs 24.3)可以突出显示语法元素,这些元素是一对或属于同一组的?例如,当光标在它们之一时,我希望三个元素ifelseifelse同时被突出显示,以便我可以清楚地看到哪三个代码块属于相同的条件语句。我认为当存在嵌套的if语句时,这是特别有用的。另一个场景可能是(我不确定是否与上一个功能相同),当光标位于return关键字上时,所有return关键字将同时被突出显示。这样我就可以检查函数中的所有退出情况。
顺便说一下,这个功能在c++中可能比在其他语言(如shell脚本或VB.NET)中 less useful。但它仍然是阅读代码的好助手。

为了使返回值被突出显示(就像光标当前所在的任何单词一样),您可以使用Highlight symbol中的highlight-symbol-mode - Hi-Angel
1个回答

1
我认为目前还没有适用于C++的这种东西。对于使用SMIE进行导航和缩进的语言(例如ruby-mode),您可以启用show-paren-mode,它将突出显示匹配的开/闭关键字。如果您在“if”上,则不会突出显示else/elseif。 我也不知道有任何一个包可以突出显示函数中所有的“return”,尽管基于beginning-of-defun和end-of-defun编写这样的包应该相当容易。

感谢你的回答。我对于高亮显示return的做法也持有相同的看法,我认为我自己就能做到。但是对于关键词组合,如“if...elseif...else”或“switch...case...default”,是否没有任何方法可以将它们高亮显示呢?嗯,也许switch不是一个好的例子,因为它并不是那么有用。但是对于(嵌套的)if语句,将同一“级别”的关键词高亮显示确实可以帮助阅读代码。 - tete
我并不是说没有办法,只是目前我不知道有哪个软件包可以做到。我认为通常人们都依赖于缩进来实现这一点。 - Stefan
是的,我明白你的意思。当然缩进也是一个助手。但我感觉这样的高亮更容易让人视觉上理解。无论如何,还是谢谢你。 - tete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接