gpt4 book ai didi

c - #if 1 的 Vim 语法问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:09 24 4
gpt4 key购买 nike

当我使用#if 0、#else 和#endif 预处理器注释掉我的代码时,vim 正确地显示了语法。但是如果我使用像这样的序列 #if 1, #else 和 #endif vim 应该显示 #else 和 #endif 之间的代码作为评论,但事实并非如此。我的 vim 版本是 7.2.411。我在我的代码中的很多地方都使用了这些,有时会因为没有突出显示而感到困惑。有没有办法启用此功能。感谢您的帮助。

例如:

#include <stdio.h>

int main()
{
#if 1
printf("inside #if 1\n");
#else
printf("inside #else\n"); // <-- This part should appear in commented syntax
#endif
return 0;
}

最佳答案

可能您需要升级到 vim 7.3+,或者至少更新 C 的语法文件。我的 $VIMRUNTIME/syntax/c.vim(对于 vim 7.3)的前几行是

" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 May 03

使用:help synID()下的例子,我试过了

:echo synIDattr(synID(line("."), col("."), 1), "name")

并得到“cCppInElse2”。可能你会得到一些不同的东西。

覆盖默认语法文件(或其他 vim 脚本)时,通常的建议是将其放在您自己的 vimfiles 目录中。如果新文件是更新的标准发行版的一部分,我会异常(exception):我确实希望在我升级到某个 future 版本的 vim 时替换它。

关于c - #if 1 的 Vim 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com