您尚未登录。

#1 2013-04-30 16:01:01

yichenburan
会员
注册时间: 2011-09-03
帖子: 35

vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

今天用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)


一切有为法,如梦幻泡影。

离线

#2 2013-04-30 20:31:50

rns
会员
注册时间: 2013-01-23
帖子: 12
个人网站

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

在我这

code1 ...
#elif 1
code2 ...

是正常显示的颜色,code3是被注释掉的颜色

离线

#3 2013-04-30 21:01:50

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

#elif 有这个?Vim 没识别呢。

离线

#4 2013-04-30 21:37:36

rns
会员
注册时间: 2013-01-23
帖子: 12
个人网站

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

所以OP说 “显然第二段代码是应该被编译的”

离线

#5 2013-04-30 22:12:36

cuihao
所在地: USTC, Hefei
注册时间: 2011-08-19
帖子: 1,223
个人网站

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

跟LZ的说法不一样啊。我这里是

#if 1   //注释掉的颜色
code1 ...  //正常颜色
#elif 1  //正常颜色,bug了
code2 ...  //正常颜色
#else   //注释掉的颜色
code3...   //注释掉的颜色
#endif   //注释掉的颜色

不理解LZ说的“显然第二段代码是应该被编译的”,elif后面的code2不应该被编译进去的呀。


Site: CVHC.CC   Twitter: @cuihaoleo   Org: LUG@USTC
AD:  ~欢迎参与志愿计算~

离线

#6 2013-05-03 05:19:17

yichenburan
会员
注册时间: 2011-09-03
帖子: 35

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

cuihao 说:

跟LZ的说法不一样啊。我这里是

#if 1   //注释掉的颜色
code1 ...  //正常颜色
#elif 1  //正常颜色,bug了
code2 ...  //正常颜色
#else   //注释掉的颜色
code3...   //注释掉的颜色
#endif   //注释掉的颜色

不理解LZ说的“显然第二段代码是应该被编译的”,elif后面的code2不应该被编译进去的呀。

第一行是 #if 0 ,帖子已更改,不好意思


一切有为法,如梦幻泡影。

离线

#7 2013-05-03 05:30:08

yichenburan
会员
注册时间: 2011-09-03
帖子: 35

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

rns 说:

在我这

code1 ...
#elif 1
code2 ...

是正常显示的颜色,code3是被注释掉的颜色

是这样的,因为我打错了一个关键的字,

#if 1
这里应该被编译
#elif 1
第一条#if的条件判断为假,这里为真,编译,否则不编译,这里显然是不编译的,因为 前面为1
#else
前面两个#if的判断都为假才编译,这里显然也是不编译的
#endif

所以code2的颜色也应该被注释掉,还是有bug。

如果按照我更改之后的帖子,只有code2应该被编译,其他两个都应该显示注释掉的颜色,但是后两个都显示正常颜色,所以还是有问题。
也就是说当有#elif存在的时候,三段语句选择其中一段编译,但是vim把两段的颜色都显示为应该被编译的颜色,而不仅仅是要被编译的那段。


一切有为法,如梦幻泡影。

离线

#8 2013-05-03 05:34:35

yichenburan
会员
注册时间: 2011-09-03
帖子: 35

Re: vim C语言 条件编译 颜色显示的问题(条件编译多个分支识别有问题, pass)

百合仙子 说:

#elif 有这个?Vim 没识别呢。

我编辑的是c源程序文件,vim file_name.c vim已经开启语法高亮显示


一切有为法,如梦幻泡影。

离线

页脚