cake.vim使い方まとめ
cake.vimは、CakePHPのController、Model、Viewなどの移動を少し楽にするVimのプラグインです。
CakePHP1.3系、 2.0系の両方で動作します。
いろんな移動の方法があるのでcake.vimの操作を一通りまとめてみました。
インストール
プラグインはvim onlineか、githubからダウンロードして解凍し、
cake/以下のファイルを.vim/配下にいれます。
Vundleを使っている方は、
:BundleInstall violetyk/cake.vim
でインストールできます。
設定
必須の設定はありません。
.vimrcにappディレクトリのパスを書いておくと、vimを起動してすぐ使えたり
CakePHPのプロジェクトに関係ないファイルを開いてからもすぐジャンプできるので便利かも知れません。
※cake.vimバージョン2.1までは g:cakephp_auto_set_projectでしたが、バージョン2.2からはg:cakephp_enable_fix_modeに変わりました。
let g:cakephp_enable_fix_mode = 1 let g:cakephp_app = "/path/to/cakephp_app/"
vim起動時に上記のようにCakePHPプロジェクトを固定しない場合は、:Cakephp コマンドでappディレクトリを指定(相対パスも可能)します。
:Cakphp {appディレクトリへのパス}
複数のCakePHPプロジェクトを扱う場合には、自動でCakePHPプロジェクトを設定するモードが便利です。.vimrcに次のように設定します。
let g:cakephp_enable_auto_mode = 1
※cake.vimを使うのにおすすめなキーバインドの設定は、id:takahiro_jinnoさんにcake.vimに任意のキーバインドを割り当てる - takahiro_jinnoの日記で紹介していただきました。
使い方の一覧
- 各コマンドで指定する引数{controller-name}等は、タブを押すと補完できます。
- 各コマンドとも上下分割、左右分割、タブで開くことができます。コマンドの後ろに上下分割(〜sp)、左右分割(〜vsp)、タブ(〜tab)をつけて実行して下さい。
例: " カレントのバッファにコントローラを開く :Ccontroller {controller-name} " 上下分割してコントローラを開く :Ccontrollersp {controller-name} " 左右分割してコントローラを開く :Ccontrollervsp {controller-name} " 新しいタブページにコントローラを開く :Ccontrollertab {controller-name}
開く対象 | コマンド | 説明 |
---|---|---|
コントローラ | :Ccontroller {controller-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがView/Model/ControllerTestCaseの場合は推測して開く。 |
モデル | :Cmodel {model-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがController/Fixture/ModelTestCaseの場合は推測して開く。 |
カレントコントローラのビュー | :Cview {view-name} {theme-name} | {theme-name}はオプション。.vimrcに let g:cakephp_use_theme = "admin" と指定しておくと常にadminテーマ固定。 |
指定したコントローラのビュー | :Ccontrollerview {controller-name} {view-name} {theme-name} | 〃 |
コンフィグ(core.phpやdatabase.phpなど) | :Cconfig {config-name} | 引数は2つ以上指定可。 |
コンポーネント | :Ccomponent {component-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがComponentTestCaseの場合は推測して開く。 |
ビヘイビア | :Cbehavior {behavior-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがBehaviorTestCaseの場合は推測して開く。 |
ヘルパー | :Chelper {helper-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがHelperTestCaseの場合は推測して開く。 |
シェル | :Cshell {shell-name} | 引数は2つ以上指定可。 |
タスク | :Ctask {task-name} | 引数は2つ以上指定可。 |
ログ | :Clog {log-name} | tail -fのようににログを開く。.vimrcに let g:cakephp_log = {'access': '/usr/local/apache2/logs/access_log'}と書いて対象ログを複数追加可能。 |
コントローラのテスト | :Ctestcontroller {controller-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがControllerの場合は推測して開く。 |
モデルのテスト | :Ctestmodel {model-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがModelの場合は推測して開く。 |
コンポーネントのテスト | :Ctestcomponent {component-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがComponentの場合は推測して開く。 |
ビヘイビアのテスト | :Ctestbehavior {behavior-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがBehaviorの場合は推測して開く。 |
ヘルパーのテスト | :Ctesthelper {helper-name} | 引数は2つ以上指定可。引数を指定せずカレントバッファがHelperの場合は推測して開く。 |
何かしらのテスト | :Ctest | 引数は無し。カレントバッファから推測して対象のテストを開く。 |
unite.vimのsource
対象 | Uniteコマンド |
---|---|
コントローラ | :Unite cake_controller |
モデル | :Unite cake_model |
カレントコントローラのビュー | :Unite cake_view |
指定したコントローラのビュー | :Unite cake_view:{controller-name} |
コンフィグ(core.phpやdatabase.phpなど) | :Unite cake_config |
コンポーネント | :Unite cake_component |
ビヘイビア | :Unite cake_behavior |
ヘルパー | :Unite cake_helper |
シェル | :Unite cake_shell |
タスク | :Unite cake_task |
フィクスチャ | :Unite cake_fixture |
cake.vimの"gf"コマンド
- ノーマルモードで"gf"と押すと、通常カーソル配下に書いてあるパスを開きますが、CakePHPのプロジェクト内では"gf"は対象のファイルをよしなに開きます。
- <C-w>fは上下分割で、<C-w>gfだとタブページ分割で開きます。
- テーマごとに同じファイル名がある場合(ビューやレイアウト、CSSやjsなど)は、選択肢が出ますので、開きたいファイルを選ぶことができます。
コントローラを開いているとき
<?php class AppController extends Controller { // 以下の行にカーソルを当ててgfすると、レイアウトを開きます。 var $layout = '2column'; //以下の行にカーソルを当ててgfすると、対象のビューを開きます。 function index() { // 以下の行にカーソルを当ててgfすると、レイアウトを開きます。 $this->layout = 'default'; // 以下の行にカーソルを当ててgfすると、対象のビューを開きます。 $this->render('xxx'); } } ?>
ビューファイルを開いているとき
<?php // 以下の行にカーソルを当ててgfすると、エレメントを開きます。 $this->element('sidebar/menu'); // 以下の行にカーソルを当ててgfすると、CSSを開きます。 $html->css('style'); // 以下の行にカーソルを当ててgfすると、Javascriptを開きます。 $html->script('jquery'); ?>
共通
<?php // 以下の行にカーソルを当ててgfすると、コンフィグを開きます。 Configure::load('list'); ?>
- また、それ以外で"gf"と押した時、カーソルを当てているキーワードから推測してファイルを開きます。
現在開いているファイル | 推測対象(推測順) |
---|---|
コントローラ | Model、Behavior、Component、Helper、Controller |
モデル | Model、Behavior、Controller |
ビュー | Helper、 Model、 Controller |
ビヘイビア | Model、 Behavior |
コンポーネント | Model、 Behavior、 Component、 Controller |
ヘルパー | Helper、 Controller |
シェル | Task、 Model |
タスク | Model |
コントローラのテスト | Fixture、 Controller |
モデルのテスト | Fixture、 Model |
ビヘイビアのテスト | Fixture、 Behavior |
コンポーネントのテスト | Fixture、 Component |
ヘルパーのテスト | Fixture、 Helper |
フィクスチャ | Model |