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

标签 vim

我正在编写一些特定于文件类型的 vim 脚本,c.vimcpp.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/

相关文章:

vim - 在当前垂直拆分中打开 quickfix

linux - 如何在 gvim 中正确设置 PATH?

具有 VIM 集成的 Java IDE,适用于来自 C/C++ 的人

Vim:多种模式的重载映射

vim - 定义适用于所有语法文件的彩色关键字

vim - 如何摆脱vim中拆分窗口之间的栏?

vim - 为什么 Vim 会忽略我的模式行值?

java - Vim 高亮静态变量

linux - 使用 vim 作为命令行工具?

python - 在 python ipdb 中禁用 vim 绑定(bind)