snippetsEmuを導入する。
MacのTextMate'sというエディタのすにぺっとをエミュレートするナイスなプラグイン。
$ cd ~/src $ wget http://www.vim.org/scripts/download_script.php?src_id=8450 $ mkdir -p ~/.vim/after/ftplugin $ vim snippy_plugin.vba
コマンドモードで
:so % :q
昔は一緒にインストールされたんだけど、php用のすにぺっとファイルを以下に保存。
~/.vim/after/ftplungin/php_snippets.vim
内容はこんな感じ。
もともとのファイルをPEARコーディング規約にあわせて修正したり追加したりした記憶。
if !exists('loaded_snippet') || &cp finish endif let st = g:snip_start_tag let et = g:snip_end_tag let cd = g:snip_elem_delim exec "Snippet php <?php<CR>".st.et."<CR>?>" exec "Snippet if if (".st."condition".et.") {<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet ifelse if (".st."condition".et.")<CR>{<CR>".st.et."<CR>}<CR>else<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet else else {<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet elseif elseif (".st."condition".et.") {<CR><Tab>".st.et."<CR>}<CR>" exec "Snippet if? $".st."val".et." = (".st.et.")? ".st.et.": ".st.et.";<CR>".st.et exec "Snippet for for ($".st."i".et." = ".st.et."; $".st."i".et." < ".st.et."; $".st."i".et."++) {<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet foreach foreach ($".st."variable".et." as $".st."key".et." => $".st."value".et.") {<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet while while (".st.et.") {<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet do do {<CR><Tab>".st.et."<CR>} while (".st.et.");<CR>".st.et exec "Snippet switch switch (".st."variable".et.") {<CR>case ".st.et.":<CR><Tab>".st.et."<CR><Tab>break;<CR>".st.et."<CR>default:<CR><Tab>".st.et."<CR><Tab>break;<CR>}<CR>".st.et exec "Snippet case case ".st.et.":<CR><Tab>".st.et."<CR><Tab>break;<CR>".st.et exec "Snippet incll include_once '".st."file".et."';<CR>".st.et exec "Snippet incl include '".st."file".et."';<CR>".st.et exec "Snippet req require '".st."file".et."';<CR>".st.et exec "Snippet reql require_once '".st."file".et."';<CR>".st.et exec "Snippet function function ".st."functionName".et."(".st.et.")<CR>{<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet define define('".st."CONSTANT".et."', ".st.et.");<CR>".st.et exec "Snippet array $".st."arrayName".et." = array(".st.et.", ".st.et.");".st.et exec "Snippet print print \"".st."string".et."\"".st.et.";".st.et."<CR>".st.et exec "Snippet $_R $_REQUEST['".st."variable".et."']".st.et exec "Snippet $_S $_SERVER['".st."variable".et."']".st.et exec "Snippet $_G $_GET['".st."variable".et."']".st.et exec "Snippet $_P $_POST['".st."variable".et."']".st.et exec "Snippet $_C $_COOKIE['".st."variable".et."']".st.et exec "Snippet -globals $GLOBALS['".st."variable".et."']".st.et.st."something".et.st.et.";<CR>".st.et exec "Snippet class class ".st."ClassName".et."<CR>{<CR><TAB>function __construct(".st.et.")<CR><TAB>{<CR><Tab><Tab>".st.et."<CR><Tab>}<CR><Tab>".st.et."<CR>}<CR>" exec "Snippet public public function ".st."functionName".et."(".st.et.")<CR>{<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet protected protected function ".st."functionName".et."(".st.et.")<CR>{<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet private private function ".st."functionName".et."(".st.et.")<CR>{<CR><Tab>".st.et."<CR>}<CR>".st.et exec "Snippet const const ".st."CONSTANT".et." = ".st.et.";<CR>".st.et