Vim如何处理C++;作为C的超集? 我写了一些文件类型特定的VIM脚本,代码为> C.VIM> /COD>和CPP.vim < /C>,当我注意到C++文件时,都执行了 C.VIM和CPP.vim < /Cord>。这是有意义的,因为C++是C的超集,但我的问题是:这是逻辑发生在哪里?

Vim如何处理C++;作为C的超集? 我写了一些文件类型特定的VIM脚本,代码为> C.VIM> /COD>和CPP.vim < /C>,当我注意到C++文件时,都执行了 C.VIM和CPP.vim < /Cord>。这是有意义的,因为C++是C的超集,但我的问题是:这是逻辑发生在哪里?,vim,Vim,P>这就是当VIM编译时告诉你C++文件也是C文件,或者在VIM目录中有一些文件来控制这个行为的东西吗?或者完全是别的什么 P> >注意,将文件类型VIM分配给我的C++文件(使用:设置FT > /COD> >返回 CP. >,如在 < P> >我的代码> CPP.vim < /Cord>文件(在>/Urs/Stuts/Vim/Vim73/语法)中有: " Read the C syntax to start with if version < 600 so <sfile>

<> P>这就是当VIM编译时告诉你C++文件也是C文件,或者在VIM目录中有一些文件来控制这个行为的东西吗?或者完全是别的什么


<> P> >注意,将文件类型VIM分配给我的C++文件(使用<代码>:设置FT > /COD> >返回<代码> CP.<代码> >,如在

< P> >我的代码> CPP.vim < /Cord>文件(在>/Urs/Stuts/Vim/Vim73/语法)中有:

" 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语法
如果版本<600
so:p:h/c.vim
其他的
运行时!语法/c.vim
unlet b:当前_语法
恩迪夫

因此它正在读取
c.vim
文件。

我的
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语法
如果版本<600
so:p:h/c.vim
其他的
运行时间!语法/c.vim
unlet b:当前_语法
恩迪夫

因此它正在读取
c.vim
文件。

我不确定这一点,但我希望
cpp.vim
在使用
extern“c”{
构造时需要
c.vim
。这并不意味着C++被看作是来自VIM的C的超集。但是我没有彻底阅读语法文件以确保这一点,因为vim语法文件阅读起来很痛苦;-)

< V>,VIM将你正在编辑的文件作为C++文件来识别,并通过该机制加载它的语法,只加载一组语法、插件等。给定文件的扩展名(或第一个字符,iinw)


HTH

我不确定这一点,但我希望
cpp.vim
在使用
extern“c”{/code>构造时需要
c.vim
。这并不意味着C++被看作是来自VIM的C的超集。但是我没有彻底阅读语法文件以确保这一点,因为vim语法文件阅读起来很痛苦;-)

< V>,VIM将你正在编辑的文件作为C++文件来识别,并通过该机制加载它的语法,只加载一组语法、插件等。给定文件的扩展名(或第一个字符,iinw)


好极了。我甚至不知道
/usr/share/vim73
目录的存在(不过,如果您想知道,我的目录实际上位于
/usr/share/vim/vim73
)。谢谢@莱利。。。你发现了我的打字错误,我把它修好了。我的在同一个地方。:)不错。我甚至不知道
/usr/share/vim73
目录的存在(不过,如果您想知道,我的目录实际上位于
/usr/share/vim/vim73
)。谢谢@莱利。。。你发现了我的打字错误,我把它修好了。我的在同一个地方。:)