Vim 如何将 C++ 处理为 C 的超集?

rav*_*ron 2 vim

我正在编写一些特定于文件类型的 vim 脚本,c.vimcpp.vim我注意到对于 C++ 文件时, 和c.vimcpp.vim被执行。这很有意义,因为 C++ 是 C 的超集。但我的问题是:实现这种情况的逻辑在哪里?

也就是说,当 vim 编译时,是否有一些东西告诉它 C++ 文件也是 C 文件,或者 .vim 目录中是否有某个文件控制这种行为?或者完全是别的什么?

值得注意的是,检查 vim 已分配给我的 C++ 文件的文件类型(使用:set ft?)返回cpp,而不是像本问题c.cpp中讨论的那样。

lur*_*ker 5

我的cpp.vim文件(下面/usr/share/vim/vim73/syntax)有:

" Read the C syntax to start with
if version < 600
  so <sfile>:p:h/c.vim
else
  runtime! syntax/c.vim
  unlet b:current_syntax
endif
Run Code Online (Sandbox Code Playgroud)

所以它正在读取c.vim文件。