vi派のためのプラグイン
なんだかカッコいいタイトルをつけてますが、お遊びネタです。実用的ではないと思います:)
例えば「管理者がユーザ情報の編集を実行するアクション」を作ろうとして、こんな感じのコマンドを入力したとします。
ethna add-action admin_user_edit_do
で、カレントのディレクトリが/path/to/APPID/template/ja_JP/admin/userだったとします。
実際にファイルを編集しようとすると、
vi ../../../../app/action/Admin/User/Edit/Do.php
とかやりたくなるんですよね。TABで補完したところでやっぱり面倒だったりするのです。
ディレクトリをさかのぼる間に何のファイルを開こうとしてたか忘れたりするのは自分だけでしょうか:)
実際は、add-actionした際に出力したファイル名が表示されるので、それをコピペすれば済んだりしますが、actionとviewとtemplateを行き来する場合などやっぱりディレクトリをさかのぼってしまいたくなるわけです。
プラグインの使い方
プラグイン導入後に以下のコマンドを叩きます。
ethna source admin_user_edit_do
すると、以下の3つのファイルをvimで同時に開きます。
アクション | /path/to/APPID/app/action/Admin/User/Edit/Do.php | |
ビュー | /path/to/APPID/app/view/User/Edit/Do.php | |
テンプレート | /path/to/APPID/template/ja_JP/admin/user/edit/do.tpl |
オプション
プロジェクトのetc配下にあるAPPID-ini.phpに以下の指定を追加することができます。
キー | デフォルト値 | 説明 | |
---|---|---|---|
source | force_open | false | ファイルが無い場合に強制的に開くか |
quote | シングルクォート(') | ファイル名の前後につけるクォート文字 | |
command | vim %s %s %s | 実行するコマンド名 | |
order | array('action', 'view', 'template') | コマンドに渡すファイル名の順番 |
設定のサンプルは以下となります。
<?php $config = array( 'source' => array( 'force_open' => true, 'quote' => '"', 'command' => 'vim -o %s %s %s', 'order' => array( 'action', 'view', 'template', ), ), ); ?>
ちなみにcommandに'vim -O %s %s %s'を指定すると縦に3分割になります。
既知の問題
このプラグインからviを開こうとすると、以下の警告が出力されて1秒弱固まります。もっさりです。
ものすごくイライラするので覚悟しておいてください。
Vim: Warning: Output is not to a terminal
それと、viの画面描写が結構な頻度で乱れます。Ctrl+lを多用することになります。
ものすごくイライラするので覚悟しておいてください。
あと、viじゃなくてvimじゃね?的な突っ込みはやめてください:)
ダウンロード
Ethna 2.5.0のpreview1とpreview2で動作確認してます。
PHP5でしかテストしていません。PHP4で動作したら教えてください:)
ダウンロード | Ethna_Plugin_Handle_Source.php |