Utility for CakePHP developers. Provides the ability to easily jump between files.
- Vim ver.7.3 or heigher
- CakePHP ver.1.3.x or ver.2.x
-
Installation Download, unzip, put under the ~/.vim directory.
If you are using Vundle,as follows::BundleInstall violetyk/cake.vim -
Launch
vim, specify the application directory of CakePHP.:CakePHP /path/to/cakephp_app_directory
-
Open the file as follows:
:Ccontroller {controller-name}
-
Argument that you specify in the command
{controller-name}, you can tab-completion. -
You can horizontal split, vertical split, also be open in the tab. Add sp, vsp, and tab to the each command.
-
Multiple arguments can be specified.
:Ccontrollersp {controller-name} {controller-name} ... :Ccontrollervsp {controller-name} {controller-name} ... :Ccontrollertab {controller-name} {controller-name} ...
No arguments : If you do not specify arguments, guess depending on the type of the current buffer.
| Target | Command | Multiple arguments | No arguments |
|---|---|---|---|
| Controller | :Ccontroller {controller-name} |
ok | View / Model / ControllerTestCase |
| Model | :Cmodel {model-name} |
ok | Controller / Fixture / ModelTestCase |
| View of the current controller | :Cview {view-name} ({theme-name}) ({theme-name} is optional) |
||
| View of action the current controller | :Cview |
||
| View of the specified controller | :Ccontrollerview {controller-name} {view-name} ({theme-name}) ({theme-name} is optional) |
||
| Config (core.php, database.php etc) | :Cconfig {config-name} |
ok | |
| Component | :Ccomponent {component-name} |
ok | ComponentTestCase |
| Behavior | :Cbehavior {behavior-name} |
ok | BehaviorTestCase |
| Helper | :Chelper {helper-name} |
ok | HelperTestCase |
| Shell | :Cshell {shell-name} |
ok | |
| Task | :Ctask {task-name} |
ok | |
| Cake Core library | :Ccore {core-name} |
ok | |
| 1st party library | :Clib {lib-name} |
ok | |
Log File (like tail -f) |
:Clog {log-name} (See g:cakephp_log) |
||
| Fixture | :Cfixture {fixture-name} |
ok | Model |
| TestController | :Ctestcontroller {controller-name} |
ok | Controller |
| TestModel | :Ctestmodel {model-name} |
ok | Model |
| TestComponent | :Ctestcomponent {component-name} |
ok | Component |
| TestBehavior | :Ctestbehavior {behavior-name} |
ok | Behavior |
| TestHelper | :Ctesthelper {helper-name} |
ok | Helper |
| Test (Any) | :Ctest |
Controller / Model / Component / Behavior / Helper / Fixture |
- In Vim, you press the
gfin normal mode, open the path it is written under the cursor, but,gfin a project in CakePHP to open the file of the object. <C-w>fis horizontal split,<C-w>gfis open in a tab, andgsis vertical split. Seeg:cakephp_keybind_vsplit_gf.
// gf on AppController -> AppController
class MyController extends AppController {
// gf with the following line -> layouts/2column.ctp
var $layout = '2column';
// gf on Post -> PostHelper
var $helpers = array('Post');
// gf on Session -> SessionComponent (CakePHP Core)
var $components = array('Session');
// gf with the following line -> index.ctp
function index() {
// gf with the following line -> layouts/default.ctp
$this->layout = 'default';
// gf on Post -> PostModel
$this->Post->find('all')
// gf on Set -> cake/libs/set.php
Set::extract('/Post', $posts);
// gf with the following line -> views/{controller-name}/pc/index.ctp
$this->render('pc/index.ctp');
}
}
// gf with the following line -> config
Configure::load('list');
// gf with the following line -> views/elements/pager.ctp
$this->element('pager');
// gf with the following line -> views/elements/sidebar/menu.ctp
$this->element('sidebar/menu');
// gf with the following line -> css/style.css
$html->css('style');
// gf with the following line -> js/jquery.js
$html->script('jquery');
// gf with the following line -> HogeController::fuga()
array('controller' => 'Hoge', 'action' => 'fuga')
// gf with the following line -> HogeController::admin_fuga()
array('controller' => 'Hoge', 'action' => 'fuga', 'admin' => true)- If dbext.vim is installed, you can see the table definition of the model,
:Cdesc {model-name}. If you do not specify an argument, the word under the cursor can be specified. :Celement {element-name}Cut out as an element the selected range.:help :Celement:Cbake [{target}]Run bake command interactively.:help :Cbake:Ctestrun [{testmethod}]Run test case command, guess depending on the type of the current buffer.:CtestrunmethodRun the test method of the current line.
- cake.vim is compatible with unite.vim.
| Target | Source |
|---|---|
| Controller | cake_controller |
| Model | cake_model |
| View of the current controller | cake_view |
| View of the specified controller | cake_view:{controller-name} |
| Config | cake_config |
| Component | cake_component |
| Behavior | cake_behavior |
| Helper | cake_helper |
| Shell | cake_shell |
| Task | cake_task |
| Fixture | cake_fixture |
| Cake Core library | cake_core |
| 1st party library | cake_lib |