1

我喜欢使用 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 或类似的东西?非常感谢您的建议或任何形式的帮助。

4

1 回答 1

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

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

阅读帮助:h ft-c-syntax:h after-directory了解详细信息。

于 2015-09-03T15:28:29.757 回答