我正在编写一些特定于文件类型的 vim 脚本,c.vim
和 cpp.vim
,当我注意到对于 C++ 文件,都是 c.vim
和 cpp.vim
正在执行。这很有意义,因为 C++ 是 C 的超集。但我的问题是:实现这种情况的逻辑在哪里?
也就是说,当 vim 编译时,是否有一些东西告诉它 C++ 文件也是 C 文件,或者 .vim 目录中是否有某个文件控制这种行为?或者完全是别的什么?
值得注意的是,检查 vim 分配给我的 C++ 文件的文件类型(使用 :set ft?
)会返回 cpp
,而不是类似 c.cpp
,如 this question 中所述.
最佳答案
我的 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
所以它正在读取 c.vim
文件。
关于vim - Vim 如何将 C++ 处理为 C 的超集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17202597/