おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

(PHP)プログラマのためのVIM (11) - PHP向けカスタマイズ(3) Andreiがつかってるプラグイン

Yahoo!のAndreiさんのプレゼンのPDFを勉強がてら訳していってます。訳は微妙です。

  1. カーソル位置・カーソル移動・マーク・挿入
  2. 削除・検索
  3. 置換・テキストオブジェクト
  4. コピー/削除/貼り付け、レジスタ
  5. undo
  6. ビジュアルモード、ウィンドウ、タブ
  7. 補完・マップ・オプション
  8. セッション、misc、ヘルプ
  9. PHP向けカスタマイズ
  10. PHP向けカスタマイズ(2) タグ・補完・netrw

そのまえに

Andreiの実際使っているvimの設定についての説明が含まれます。ファイルは元記事からダウンロードすることができます。
PHPと付いてはいますが、ほとんど他の言語でも使えるものです。

タグリスト (taglist)

  • これを~/.vim/after/plugin/general.vimに貼り付ける
let Tlist_Ctags_Cmd = "/usr/local/bin/ctags-ex"
let Tlist_Inc_Winwidth = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_File_Fold_Auto_Close = 1
let Tlist_Process_File_Always = 1
let Tlist_Enable_Fold_Column = 0
let tlist_php_settings = 'php;c:class;d:constant;f:function'
if exists('loaded_taglist')
nmap <silent> <F8> :TlistToggle<CR>
endif

snippetsEmu

  • TextMate(mac用のエディタ)のSnippets機能のいくらかをエミュレートしてくれます
  • 多くの言語をサポートしており、PHP/HTML/CSS/JavaScriptも含まれてます
  • デフォルトはタブキーにバインドされるんだけど、それうざい
  • 読み込み後にキーをリマップする必要がある
  • これを~/.vim/after/plugin/general.vimに追記
if exists('loaded_snippet')
imap <C-B> <Plug>Jumper
endif
inoremap <Tab> <C-R>=MyTabOrComplete()<CR>

php documentor

  • 自動でPHP Documentor形式のブロックを挿入してくれる
  • 単一行・複数行モードのどちらも動作する
  • デフォルトではマッピングをしない
  • ドキュメントを読んでcopyright, packageなどのデフォルト値を設定してください
  • これを~/.vim/ftplugin/php.vimに挿入
inoremap <buffer> <C-P>
nnoremap <buffer> <C-P>
vnoremap <buffer> <C-P>
let g:pdv_cfg_Uses = 1

vcscommand

おわり

以上、11回に渡りお届けしました。