Могу ли я переназначить команду vim `gf`, чтобы следовать псевдонимам пути Yii? - PullRequest
1 голос
/ 26 марта 2012

Я только что узнал о команде vim gf для перехода к файлам, на которые есть ссылки в других файлах, таких как c include. Я хочу, чтобы это работало в фреймворке 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 это может быть либо:

  1. вычислить правильный путь к файлу, затем перейти к файлу или, если файл не найден,
  2. выполнить поиск тега ClassName?

1 Ответ

3 голосов
/ 26 марта 2012

См. :help includeexpr. Приведенный здесь пример для Java может соответствовать вашим целям:

:set includeexpr=substitute(v:fname,'\\.','/','g')

В общем, см. :help gf и затем переходите к настройкам, которые его контролируют (как я только что сделал:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...