プロフィール

島田圭二

Author:島田圭二
Follow shimanp on Twitter

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
読断と変見内検索
訪問ありがとうございます
最近のコメント
最近のトラックバック
関連リンク
カテゴリー
月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
vi 文字補完メモ - PHP
viには文字の補完がいくつかあるけど、オムニ補完と辞書補完のメモ。主にPHP。

まずはオムニ補完


オムニ補完はインテリセンス的なやつ。
PHPの場合vim7以降はオムニ補完に対応しているので、
autocmd FileType php set omnifunc=phpcomplete#CompletePHP

をvimrcに追加するだけでOK。
あとctagsで生成されたデータベースもオムニ補完の対象となるらしい。
ちなみにctagsはフォルダ内にあるファイルを読み込んで、
クラス名や関数名などをインデックス化してくれるツールのこと。
windowsの場合はctagsが入ってないので、インストールする必要がある。
ここからダウンロード
ダウンロードして解凍したら、中のexeをパスの通っているフォルダにおく。
僕はvimの直下に置いたけど、system32とかでもいいと思う。
あとはプロンプトでタグりたいディレクトリに移動して
ctags -R

を実行もしくはvimを開いて、カレントをタグりたいディレクトリに移動して、ツールからタグを作成する。

参考URL
http://nanasi.jp/articles/others/ctags.html

設定が完了したら、エディタを開いて、補完したいときにCtrl + X, Ctrl + o を入力する。
ちなみにvimrcでautocmd FileType phpと指定しているので拡張子がphpのファイルでしか補完されない。

次は辞書補完


オムニ補完と似てるけど、自前で辞書を用意してその辞書を参照して補完するのが辞書補完。
まず辞書を用意する。方法は二つある。
まず古いけどvimのサーバーからダウンロードする。
vim online
もう一つはインストールしたPHPのライブラリから自分で作成する。
linux、macなら
php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > PHP.dict

windowsだとたぶんエラーになる。少し変えればできるようになるかも。

辞書ファイルを作成したら、適当なとこにおく。
一般的にはたぶん
windowsならホーム/vimfiles/dictionary/
macならホーム/.vim/dictionary/
あたりだと思うdictionaryディレクトリがなければ作成する。
配置したら、vimが辞書ファイルを認識するよう設定擦る必要がある。
vimrcに以下を追加
windows
autocmd FileType php set dictionary=%homepath%/vimfiles/dictionary/PHP.dict

mac
autocmd FileType php set dictionary=~/.vim/dictionary/PHP.dict

別の場所に置いた場合は適宜変更。てかフルパスでないと認識しなかった。

これで設定は完了。
phpファイルを開いて、Ctrl + x, Ctrl + k で文字補完ができる。
ちなみになぜかWindowsでKaoriyaさんからダウンロードしたやつだとコマンドを入力しなくても
自動で補完されたなんでだろう?
通常自動補完したい場合は、ここからダウンロードして、
そのフォルダ構成のままvimのruntimeに置く。
そしてvimrcに
autocmd Filetype php let g:AutoComplPop_CompleteOption='.,w,b,u,t,i,k~/.vim/dictionay/PHP.dict

を設定する必要があると思う。
スポンサーサイト


vi | 【2010-04-21(Wed) 11:30:35】 | Trackback:(0) | Comments:(0)
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。