有没有办法通过使用预定义的字符串进行折叠?

时间:2015-09-03 06:11:25

标签: string vim folding predefined-variables

我喜欢使用vim来编写c和c ++,但我很失望使用折叠方案,因为我在C中有很多定义。

CONFIG_A_DEFINEDED
CONFIG_B_DEFINEDED
CONFIG_C_DEFINEDED

例如:

#if config_a_defineded
..
#endif

#if config_b_defineded
..
#endif

...

我的问题是:是否有方法在vim中折叠使用在文件中预定义的sting或类似的东西?建议或任何形式的帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

创建一个文件〜/ .vim / after / syntax / c.vim并输入:

if !exists("c_no_ifdef_fold")
  syn region cPreIfdefRegion start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" end="^\s*\(%:\|#\)\s*\(else\|endif\)\>" fold transparent
endif

加载c语法文件时,请将foldmethod设置为语法。使用变量c_no_ifdef_fold禁用此行为。

阅读:h ft-c-syntax:h after-directory的帮助以获取详细信息。