首先,我准备在 vim 中写出一长串 if/else 语句,并意识到 1) 有一种更好的方法可以做我想做的事情 2) 所以在这个主题上得到帮助会很成熟。所以!我有各种各样的文件,比如
foo/src/file01.C
foo/src/file02.cc
foo/src/file03.c
foo/include/file01.hh
foo/include/file02.h
foo/include/file03.h
如果您注意到 C/H、cc/hh、c/h 扩展名可能匹配也可能不匹配,那么您很热心,我希望您能提供帮助。我看过类似 the following vim scripts 的东西来自 Vim wiki 的“在源文件和头文件之间轻松切换”,虽然我只在 a.vim 中转储了几个小时没有成功,但其他人似乎无法通过该页面上的文档工作。那么任何人都可以帮助解决如何进行这项工作吗?
我有一个很好的线索是快速 How to Easily Switch between Header and Source主题,但仍然无法使其工作。
我想我真正想要的是如何避免多个 if 语句并使用真正的匹配来做我想做的事。我想查看另一个目录,如果它是源 C/C++ 文件,则查找具有任何熟悉扩展名的同名头文件,或者如果它是头文件,则查找任何常规扩展名的源文件。谢谢你的帮助!
更新:我特别想在新选项卡中打开文件。我住在 vim 标签上!
最佳答案
为了确保我使用的是最新版本,我 downloaded the latest a.vim script (2.18) 并将其复制到我的 ~/.vim/plugin
中目录。
您可以在 ~/.vimrc
中定义某些变量获取文件 a.vim
识别备用文件扩展名。
为了让示例中的文件与它们的替代文件相匹配,我在 ~/.vimrc
中添加了以下内容:
let g:alternateExtensions_C = "H,hh"
let g:alternateExtensions_hh = "C"
这些是允许您覆盖已定义内容的全局变量。你必须定义
两种关系(它们不能双向工作)。
您可以通过键入以下内容查看当前的映射:
:echo g:alternateExtensionsDict
如果您需要定义其他映射,请遵循相同的模式。下划线后面是您正在编辑的文件扩展名。双引号中的内容是以逗号分隔的备用扩展名列表。
let g:alternateExtensions_<ext> = "<list,of,alt,ext>"
如果您有不同的目录结构,您可以通过覆盖
g:alternateSearchPath
来定义要搜索的路径。多变的。 ../src
和 ../include
默认情况下已经包含在内。:echo g:alternateSearchPath
要在新选项卡中打开备用文件:
:AT
顺便说一句,
a.vim
脚本有很好的文档记录。你可能想打开它看看。我发现了一两个我不知道的设置,而且我已经使用它多年了;o)我希望这有帮助。
关于vim - 使用来自多个目录和多个扩展名的 vim 打开头文件到 C/C++ 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385491/