我正在编写一个库,它被组织成两个平行且相当深的 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++ 编程时,它是必备的。