我喜欢使用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或类似的东西?建议或任何形式的帮助非常感谢。
答案 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
的帮助以获取详细信息。