私は、vimのgf
コマンドが、他のファイルで参照されているファイルにナビゲートすることを知りました。私は、ファイルは、このようなオートローダーに登録することができますのYii PHPフレームワーク内でこの作業を取得したいよ:それは実際のファイル・パスはありませんので、ClassName
にvimの `gf`コマンドをYiiのパスエイリアスに従って再マップすることはできますか?
gf
を使用して
Yii::import('path.to.ClassName', true);
は効果がありません。しかし、それをファイルパス(path/to/ClassName.php
)に変換するのは簡単です。 ext.widgets.widgetName.ClassName
どこか、おそらくprotected/extensions/widgets/widgetName/ClassName.php
にエイリアスである
$this->beginWidget('ext.widgets.widgetName.ClassName');
:
また、例えば次のようになりウィジェットを初めとしてパスエイリアスを利用するのYii内の他のメカニズムが存在します。この場合、エイリアスext
は実行時にフルパスに展開されるため、vimは完全なファイルパスを知ることができません。
/過負荷のいずれか、それは可能性がPHPプロジェクト内のでgf
をリマップする方法があります:
- は、そのファイルに移動し、正しいファイルパスを計算する、またはファイルが見つからない場合に実行をタグルックアップ
ClassName
?
Davidさん、ありがとうございます。しかし、エイリアスを使用するファイルパスのYii固有の問題は解決しません。単純に '.'を'/'に置き換えると、ファイルが見つからないというエラーになります。このエラーをトラップする方法を知っていますので、タグ検索を試すことができますか? – bejonbee
うーん、そうではありません。珍しい種類のタグ付けが必要になるようです。最低限、実行時拡張機構をvimで利用できるようにする必要がありますが、タグ付けと 'gf'の両方が静的解析に依存しています。 Yiiのソースがすぐに利用できると仮定すると、その目的のためのプラグインまたは外部ツールを作成できます。 –
私のプロジェクトでは、「」と入力すると、ctagsを使ってカーソルの下にあるクラス名を効果的に見つけることができます。だから私は、 'gf'がファイルを見つけられなかったときの代替としてctagsを利用したいと考えていました。 –
bejonbee