在 vim 中切换 src 文件和包含文件

在 vim 中切换 src 文件和包含文件

我正在编写一个库,它被组织成两个平行且相当深的 src/ 和 include/ 目录,分别包含我的 .cpp 和 .h 文件。我最喜欢的编辑器是 vim,但我还没有找到一种快速在源文件和头文件之间切换的好方法。例如,我可能会发现自己在编辑

〜/工作区/我的项目/包括/我的项目/核心/实用程序/coolutil.h

并决定我现在需要对

~/workspace/myproject/src/myproject/core/utils/coolutil.cpp。

有没有一种方便且符合人体工程学的方法可以在 (g)vim 中快速处理此类切换?我目前的方法是保持两个 NERDTree 保持打开状态,一个用于 src/,一个用于 include/,但我觉得一定有一种不那么麻烦的方法。

答案1

此函数可能会执行您想要的操作。将其放入您的 ~/.vimrc 或插件中。它假定您的所有 .cpp 和 .h 文件都位于并行目录中,如您的示例所示。

function! OpenOther()
    if expand("%:e") == "cpp"
        exe "split" fnameescape(expand("%:p:r:s?src?include?").".h")
    elseif expand("%:e") == "h"
        exe "split" fnameescape(expand("%:p:r:s?include?src?").".cpp")
    endif
endfunction

nmap ,o :call OpenOther()<CR>

当您打开.cpp 或.h 文件时,键入,o将在分割窗口中打开另一个文件。

答案2

替代方案插件a.vim解决了这个问题。使用 C 或 C++ 编程时,它是必备的。

相关内容