我刚学会了vim的gf
命令,用于导航到其他文件中引用的文件,例如c includes。我想在Yii php框架中使用它,在这里可以使用自动加载器注册文件,如下所示:
Yii::import('path.to.ClassName', true);
在gf
上使用ClassName
无效,因为它不是真正的文件路径。但是,将它转换为文件路径(path/to/ClassName.php
。
此外,Yii中还有其他机制利用路径别名,例如开始一个小部件,如下所示:
$this->beginWidget('ext.widgets.widgetName.ClassName');
ext.widgets.widgetName.ClassName
是某个地方的别名,可能是protected/extensions/widgets/widgetName/ClassName.php
。在这种情况下,别名ext
在运行时扩展到其完整路径,因此vim无法知道完整的文件路径。
有没有办法重载/重新映射gf
所以在php项目中它可以:
ClassName
?答案 0 :(得分:3)
请参阅:help includeexpr
。在那里列出的Java示例可能适合您的目的:
:set includeexpr=substitute(v:fname,'\\.','/','g')
更一般地说,请参阅:help gf
,然后按照跳转到控制它的设置(就像我刚刚做的那样:)。