c 的路径设置包括 vim 的标头

新手上路,请多包涵

我的 vim 具有如下所示的路径设置。

 path=.,/usr/include,,

我认为这是我猜的“路径”的默认设置。

正因为如此, g f 打开了光标下的 c 个头文件。

但是在 C++ 文件上,C++ 头文件没有打开,因为 C++ 头文件位置没有添加到 vim 的 path 变量中。

 set path+=/usr/include/c++/4.6

我认为 vimrc 上的这个设置将是一个解决方案。但问题是 C++ 头文件的实际目录位置会在每个不同的 linux 发行版和 g++ 编译器版本中更改。

如何以可移植的方式设置 C++ 头文件的路径?

 let g:gcpp_headers_path = system("g++ --version | grep g++ | awk '{print \"/usr/include/c++/\"$NF}'")

execute 'set path+=' . g:gcpp_headers_path

现在我在上面使用它:这适用于 g++ 环境。未使用其他编译器进行测试。

原文由 Jumogehn 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 977
1 个回答

如果位置数量有限,则 ~/.vimrc 中的简单条件将执行以下操作:

 if isdirectory('/usr/include/c++/4.6')
    set path+=/usr/include/c++/4.6
elseif isdirectory(...

如果您有很多不同的系统,并且不想在一个中心位置维护所有变体,您可以将与系统相关的设置移动到一个单独的、仅限本地的文件中,然后从您的 ~/.vimrc 调用它 --- ,像这样:

 " Source system-specific .vimrc first.
if filereadable(expand('~/local/.vimrc'))
    source ~/local/.vimrc
endif

原文由 Ingo Karkat 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题