今天用vim的时候遇到了一个问题,条件编译的问题,
#if 0 此处改成 #if 0 开始打错了,把0写成了1 不好意思
code1 ... 注释掉的颜色
#elif 1
code2 ... 正常颜色
#else
code3... 正常颜色, 这里本应该显示被注释掉的颜色,但是vim显示错了
#endif
显然第二段代码是应该被编译的,但是在vim中只有第一段代码是被注释掉的颜色,后两段代码都是正常显示的颜色,开始还以为记错了,后来查看书和编译测试,发现确实是这样,也就是vim的颜色显示不对,不知道是不是vim的bug,该怎么解决这个问题呢?????屏幕显示有限,人眼只能看到部分代码,颜色起到很大的作用,这样容易让人产生可怕的错觉。
最近编辑记录 yichenburan (2013-11-23 20:40:15)
一切有为法,如梦幻泡影。
离线
#elif 有这个?Vim 没识别呢。
离线
跟LZ的说法不一样啊。我这里是
#if 1 //注释掉的颜色
code1 ... //正常颜色
#elif 1 //正常颜色,bug了
code2 ... //正常颜色
#else //注释掉的颜色
code3... //注释掉的颜色
#endif //注释掉的颜色
不理解LZ说的“显然第二段代码是应该被编译的”,elif后面的code2不应该被编译进去的呀。
Site: CVHC.CC Twitter: @cuihaoleo Org: LUG@USTC
AD: ~欢迎参与志愿计算~
离线
跟LZ的说法不一样啊。我这里是
#if 1 //注释掉的颜色 code1 ... //正常颜色 #elif 1 //正常颜色,bug了 code2 ... //正常颜色 #else //注释掉的颜色 code3... //注释掉的颜色 #endif //注释掉的颜色
不理解LZ说的“显然第二段代码是应该被编译的”,elif后面的code2不应该被编译进去的呀。
第一行是 #if 0 ,帖子已更改,不好意思
一切有为法,如梦幻泡影。
离线
在我这
code1 ...
#elif 1
code2 ...是正常显示的颜色,code3是被注释掉的颜色
是这样的,因为我打错了一个关键的字,
#if 1
这里应该被编译
#elif 1
第一条#if的条件判断为假,这里为真,编译,否则不编译,这里显然是不编译的,因为 前面为1
#else
前面两个#if的判断都为假才编译,这里显然也是不编译的
#endif
所以code2的颜色也应该被注释掉,还是有bug。
如果按照我更改之后的帖子,只有code2应该被编译,其他两个都应该显示注释掉的颜色,但是后两个都显示正常颜色,所以还是有问题。
也就是说当有#elif存在的时候,三段语句选择其中一段编译,但是vim把两段的颜色都显示为应该被编译的颜色,而不仅仅是要被编译的那段。
一切有为法,如梦幻泡影。
离线
#elif 有这个?Vim 没识别呢。
我编辑的是c源程序文件,vim file_name.c vim已经开启语法高亮显示
一切有为法,如梦幻泡影。
离线