2014-11-05 79 views
3

我正在学习如何使用Emacs编写代码(C++)。我在想,如果有一个包(我使用Emacs 24.3)可以突出显示对或属于同一组的语法元素?例如,我希望当光标位于其中任何一个位置时,同时突出显示三个元素if,elseif,else,以便我可以清楚地看到哪三个代码块属于同一条件句子。我认为这是有用的,尤其是当嵌套if句子。另一种情况是(我不确定它是否与前一个功能相同),当光标位于return关键字上时,所有return关键字将同时高亮显示。这样我可以检查一个函数中所有现有的案例。让Emacs突出显示语法关键字对

顺便说一句,这个特性在C++中可能比其他一些语言如shell脚本或VB.NET中没有大括号。但它仍然是阅读代码的好帮手。

+0

要使高亮返回*(就像光标当前所在的任何单词一样)*可以使用[Highlight symbol](http://www.emacswiki.org/)中的“highlight-symbol-mode”的emacs/HighlightSymbol)。 – 2015-08-27 12:40:35

回答

1

我不认为C++已经有这样的事情了。对于主要模式使用SMIE进行导航和缩进的语言(例如,ruby-mode),您可以启用show-paren-mode,这将突出显示匹配的开启/关闭关键字。如果你在“如果”,它不会突出显示else/elseif,tho。

而且我不知道任何包含所有“返回”功能的软件包,但根据beginning-of-defunend-of-defun,这应该相当容易编写。

+0

感谢您的回答。我强调“回归”的感觉是一样的,我想我可以自己做。但对于分组关键字,“if ... elseif ... else”或“switch ... case ... default”,没有办法突出显示它们?那么,也许'switch'不是一个好例子,因为它没有用处。但对于(嵌套)'if',突出显示同一个“级别”上的关键字确实可以帮助阅读代码。 – tete 2014-11-05 23:11:16

+0

我不是说没有办法,我只是说我不知道​​目前有任何包装。我认为人们通常会依靠缩进。 – Stefan 2014-11-06 02:12:48

+0

是的,我明白你的意思了。当然,缩进也是一个帮手。我只是觉得这样的突出显得更容易。不管怎样,谢谢你。 – tete 2014-11-06 08:14:49