2016-11-28 28 views
-1

我希望我的emacs能够在宏未定义的情况下将代码颜色更改为灰色,并且在#ifdef#else的情况下也需要适当的缩进。emacs,#ifdef宏的颜色变化和缩进

#define MY_MACRO 
#ifdef MY_MACRO 
int foo = 0;//proper indent, normal color 
#else 
int bar = 0;//proper indent, and gray color 

回答

2

Emacs有hide-ifdef-mode

在hide-ifdef-mode中,#ifdef构造中预处理器将消除的代码可能会被隐藏起来。

它可以通过M-x hide-ifdef-mode激活。对于基本用法,请使用功能hide-ifdefs(默认快捷方式C-c @ h)。 `

#define MY_MACRO 
#ifdef MY_MACRO 
int foo = 0;//proper indent, normal color 
#else... 
#endif 

要恢复的影响,使用功能show-ifdefs(默认快捷键C-c @ s):

#define MY_MACRO 
#ifdef MY_MACRO 
int foo = 0;//proper indent, normal color 
#else 
int bar = 0;//proper indent, and gray color 
#endif 
+0

感谢@路德,这是一个解决方案,告诉MACRO是否已定义,但不是我想。我认为颜色变化会是一个更好的选择,因为我可以方便地看到UNDEFINED下没有'show-ifdefs'cmd(尽管它也很方便),所以我会让线程打开,然后等待我的COLOR CHANGE SOLUTION 。 – francis