Emacs使用cpp-highlight-buffer mode进行C代码预处理

本来看到说对于#if ...#elif...#endif这种预处理语句,可以用M-x hide-ifdef-mode进入hide-ifdef-mode进行智能的显示处理,但没弄会。后来发现cpp-highlight-buffer mode可以做预处理。就尝试探索了一下,看下面。

原本代码是下面的样子:

Emacs使用cpp-highlight-buffer mode进行C代码预处理

M-x cpp-highlight-buffer 启动该处理模式。出现类似下面的界面,然后进行相关设置,注意里面说的mouse-2原来是说鼠标中键啊,真是费解!按鼠标中键会弹出可选项,进行修改。

Emacs使用cpp-highlight-buffer mode进行C代码预处理

需要人工自己解析一下定义的宏的值与表达式的值。如果表达式是True,则在[F]alse face下面选invisible。[K]nown condition这里选择invisible,然后在[A]pple new settings这里mouse-2一下。效果如下:

Emacs使用cpp-highlight-buffer mode进行C代码预处理

是不是代码看起来就方便多了?

也还可以这么设置。

Emacs使用cpp-highlight-buffer mode进行C代码预处理

对预编译语句行用绿底色(pale green)显示,对于条件表达式为True时,桔色(orange)底色显示。则显示成下面的样子。

Emacs使用cpp-highlight-buffer mode进行C代码预处理

配置很*。