VIM突出显示IFDEF和IF语句

VIM突出显示IFDEF和IF语句,vim,Vim,可以在VIM中突出显示#DEFINE语句吗 VIM确实能够正确地为#if 0着色,但不能为更复杂的表达式着色。下面是它的样子: 有没有办法确定第二个的颜色?我正在编写一个定义了大量代码的代码库,如果没有正确的突出显示,就很难阅读。 谢谢 您可以使用高亮显示命令覆盖颜色。创建文件~/.vim/after/syntax/c.vim,并添加以下行: highlight cDefine ctermfg=4 cterm=bold 它将以粗体浅蓝色设置定义指令 此外,这可以帮助您选择颜色:我找到了一个适

可以在VIM中突出显示#DEFINE语句吗

VIM确实能够正确地为
#if 0
着色,但不能为更复杂的表达式着色。下面是它的样子:

有没有办法确定第二个的颜色?我正在编写一个定义了大量代码的代码库,如果没有正确的突出显示,就很难阅读。
谢谢

您可以使用
高亮显示
命令覆盖颜色。创建文件
~/.vim/after/syntax/c.vim
,并添加以下行:

highlight cDefine ctermfg=4 cterm=bold
它将以粗体浅蓝色设置
定义
指令


此外,这可以帮助您选择颜色:

我找到了一个适合我的解决方案。它不使用注释颜色为代码着色,但会将其隐藏。 如果我将光标放在AAA上,在
#ifdef AAA
行中,并键入
[I
,VIM可以显示AAA的定义。
然后我查看定义,决定是否应该显示此代码块,并使用
zf%
将其折叠(如果折叠,则使用
zf
,并且
%
指定折叠到块的末尾)

上发布的最早的Vim插件之一是


它为
#ifdef#ifndef#else#endif
块(但不是
#如果已定义()
),具有将符号标记为已定义或未定义的功能。

能否将代码显示为文字文本和要突出显示的文件类型?我希望在这种代码的情况下:
\define AAA
\ifndef AAA
int x;
\endif
如果
int x
int x
将具有不同的颜色取消区块谢谢,但它没有回答我的问题。这使得
#define AAA
以不同的颜色着色。我想要的是
int x
以不同的颜色。我明白了。我想说编辑器无法检测到它。
#define
行与以下
#ifdef
完全独立,它与uld可以在任何其他地方,甚至在一个单独的文件中。行
#if 0
可以清楚地作为一个不可访问的块进行分析,但我想说,Vim无法轻松分析要着色的
#ifdef
,您需要编译器。这有意义吗?感谢您的响应!我理解Vim很难确定自动执行此操作,但如果我执行[I]操作,它确实会以某种方式正确计算表达式。不管怎样,因为目标是代码可读性,即使手动告诉VIM定义的值,或者甚至使用注释颜色为特定块着色,我也可以,我已经找到并安装了它,但我似乎不适合我。(VIM不识别
:Define
)@user1637056中有一些文档:“用法:”用作语法插件(源代码ifdef.VIM from~/vimfiles/after/syntax/cpp.VIM-”以及c.VIM和idl.VIM)