2010-05-17 79 views
7

可能重复:
Open file from complete path under cursor in VimVim的光标下打开文件

比方说,我有以下文件树:

/ 
    include/ 
    library/ 
     a.hpp 
     b.hpp 
    src/ 
    a.cpp 
    b.cpp 

而下面/src/a.cpp文件:

#include "a.hpp" 
#include "b.hpp" 

我总是在根目录下打开Vim。所以,当我想要加载a.hpp我做的:

:tabnew include/library/a.hpp 

或:

:tabnew **/a.hpp 

我想映射<F4>打开光标下的文件在新标签,使用递归搜索。

我尝试以下映射命令:

:map <F4> :tabnew **/expand("<cfile>")<cr> 

但很明显,这可不行,因为它试图打开该文件,而不是"/expand("

任何线索我怎么能做到这一点?

谢谢。

回答

3

:help gf给出了如何实现这一点的提示。

:nmap <F4> :tabe **/<cfile><cr>

看来<cfile>在映射自动展开。

+0

这不能工作(并且不起作用),因为''由':execute'命令评估,而不是在使用映射时评估。 – ereOn 2010-05-17 11:58:05

+0

Bah,你是对的。在光标位于测试用例上时定义地图时,它工作正常;) – 2010-05-17 12:23:39

+0

我刚发现它,然后看到了你的编辑!无论如何,感谢;)我会接受。 – ereOn 2010-05-17 12:42:21