サクラエディタで PHP を使うときに、ちゃんと設定ができてなくて効率が悪い人をよく見かけます。
PHPにおすすめのエディタ(個人的に) : アシアルブログ
あたりで紹介されているように、結構いろいろな機能があるのに。
上記のページについて「機能を知るにはいいけど、設定方法が載ってないのが残念だなー」と思ってたんですけど、Vista 機にサクラエディタをインストールする機会があったので、設定方法をまとめてみました。
(2008-03-27 追記)
元々のタイトルは「サクラエディタ+PHP 設定方法まとめ」だったんですが、サクラエディタと PHP を連携する(PHP のマクロ登録したりする)方法と紛らわしいので変更しました。
PHP のマクロ登録はまだ成功していないんですが、うまくいったらどこかでまた報告します。
■事前準備1
サクラエディタを使いこなすためには、サクラエディタ本体以外のファイルを色々と準備する必要があります。この手順もついでに紹介しておきます。
・
サクラエディタ Download から最新のパッケージを入手してインストール
・
SakuraDownを同階層に入れて実行。すべてチェックを入れ、「最新版を確認」→「インストール開始」
Vista の場合はいくつか面倒なことがあります。
まず、Vista だと UAC を考慮しないといけません。(参考:
[6436] Re:古いサクラをVistaで正しく動作させる場合 - サクラエディタBBS)
今回は C:\sakura に入れて UAC を回避してみます。
また、Vista では SakuraDown が外部の解凍ソフトを利用しないようになっているため、.zip 以外(.lha と .tar.bz2)の解凍が行われません。 ダウンロードは行えていますので、C:\sakura\archive 以下のファイルを自分で解凍→sakura.exe と同階層にコピーする必要があります。
・bron142.lzh 内の bregonig.dll
・cmigemo-1.2-dll.tar.bz2 内の migemo.dll および dict フォルダ
・ppa_124.lzh 内の Ppa.dll
が該当します。
■事前準備2
その他必要なファイルを準備します。
・PHP のマニュアルダウンロード
PHP: Download documentation
から適当な HTML Help file(chm) をダウンロード。
(2009-03-11 追記)
ダウンロードした .chm がそのままでは開けないケースがあるようです。.chm をダブルクリックで開いてみて「ページが表示できません」系のエラーになる場合は、ファイルのプロパティ→全般→ブロックの解除 を試してみてください。
・php.rl の作成
サクラエディタでルールファイルを活用する-knowledge database-
を参考に。C:\sakura\keyword\php.rl として保存。
・ctags.cnf の準備
(「タグファイルの作成」ダイアログでオプションを入力したくない人だけ)
%USERPROFILE%\ctags.cnf を作成し、
--langmap=PHP:.php.inc
--php-types=c+f+d+v
と書いておく。(+v をつけるとローカル変数もすべてタグが生成されてしまうので、好みに応じて c+f+d に。)
■ついでに
PHP とは関係ないけど Web 開発する上で設定しておいたほうがいいこと。
IE を使っている人は、サクラエディタでソース表示するように設定しておきましょう。
・SakuraDown で「カスタマイズ用レジストリファイル作成」する
・C:\sakura\registory\IEでソース表示設定用色分け.reg を実行
・C:\sakura\registory\SampleMultifile.sakurahtm.dat を C:\sakura\sakurahtm.dat としてコピー
・C:\sakura\multifile.exe を C:\sakura\sakurahtm.exe という名称でコピー
あと、共通設定(Ctrl+6)→「ファイル」タブ→「ファイルの排他制御」は「排他制御しない(N)」がオススメです。ログファイルを開いたまま忘れてて、排他制御してたせいでエラーログがうまく吐かれなかった、みたいなミスを防止できるので。
■PHP のセット追加
強調表示のために必要。
共通設定(Ctrl+6)→「強調キーワード」タブ→「セット追加(M)」
・セット名: PHP
・「インポート(I) ...」で C:\sakura\keyword\PHP.KWD を選択
・「OK」
■タイプ別設定
タイプ別設定一覧(Ctrl+4)→「設定17」とかを選択(使っていないものを適当に)→「設定変更(S)」
○「スクリーン」タブ
・設定の名前(N): PHP
・ファイル拡張子: php,inc
(必要であれば phtml とか thtml も追加)
・アウトライン解析方法→ルールファイル→上で準備した php.rl
○「カラー」タブ
・強調キーワード1: PHP
好みに応じて、
「強調キーワード2〜10...」→「強調キーワード2」: HTML
を設定しても良い。個人的には、Smarty 使うことが多い&PHP 部分を目立たせたいので設定していてない。
・コメントスタイル→ブロック型(F)&ブロック型(T): /* 〜 */
・コメントスタイル→行型(M): //
・コメントスタイル→行型(E): #
・(好みに応じて)色指定→正規表現キーワード1 にチェック。後で に適用するので、目立つ色に。
(2009-06-27 追記)
色の設定は、カラー定義ファイル として外だしすることもできるみたいです。(参考:
Junk: サクラエディタでカラー定義)
○「支援」タブ
・入力補完機能→単語ファイル(W): C:\sakura\keyword\PHP.KWD
・→英大文字小文字を同一視する(&I): チェック
・外部HTMLヘルプの設定(P): |(さっきダウンロードしたヘルプファイルのパス)\php_manual_ja.chm
○「正規表現キーワード」タブ
(好みに応じて)正規表現キーワードを使用する(R) にチェック
・/<\?(php)?/k: 正規表現キーワード1
・/\?>/k: 正規表現キーワード1
○「キーワードヘルプ」タブ
(古いバージョンの「支援」タブ→キーワードヘルプ機能に該当)
・「キーワードヘルプ機能を使う(K)」にチェック
・辞書ファイルで C:\sakura\keyword\php.khp を選んで「挿入(S)」
■Smarty を使っている場合
PHP とほぼ同じですが、こんな感じで設定しています。タイプ別設定一覧(Ctrl+4)→「設定18」とか(使っていないものを適当に)→「設定変更(S)」
○「スクリーン」タブ
・設定の名前(N): Smarty
・ファイル拡張子: tpl
○「カラー」タブ
・強調キーワード1: HTML
・コメントスタイル→ブロック型(F)&ブロック型(T): { 〜 }/
・色指定→コメント。後で {〜} に適用するので、目立つ色に。
・色指定→シングルクォーテーション文字列、ダブルクォーテーション文字列のチェックをはずしておく
こうしておかないと、<a href="hoge.php?param={$param}"> みたいなのを見逃してしまうので。
■活用してみる
せっかく色々入れたので、活用例でも。
○強調表示
.php ファイルを開くと、ちゃんと関数その他が強調表示されてます。
今気づいたけど、function や require_once みたいな言語要素は強調表示されないみたい。Perl/Perl2 みたいに二種類のキーワードを設定するともっといいかも。
○アウトライン表示
F11 で関数の一覧が開きます。現在の関数が選択されているので「今読んでるのってどの関数だろう?」みたいな場合にも使えます。
○キーワード補完&キーワードヘルプ
関数名の先頭を入力して Ctrl+Space を押下すると、補完候補が出てくる。適当に選んで Enter 等(共通設定→支援あたりで選べる)で補完。
キーワードヘルプが指定されているので、関数の説明も出てくれる。
キーワードヘルプについては単語選択するだけでも OK。
○外部 HTML ヘルプ
関数名の上で F1 を押下すると、該当関数のヘルプが開きます。
○MIGEMO インクリメンタルサーチ
知らない人のために説明すると、検索語を先頭から入力しつつ検索を行う機能で(インクリメンタルサーチ)、さらにローマ字入力で日本語の検索ができるようにしたもの(migemo)。
たとえば「ソフト」という文字を探したい場合。「検索(S)」→「インクリメンタルサーチ(S)」→「MIGEMO 前方インクリメンタルサーチ」で「so」と入力すると、「so」や「そ」で始まる単語がハイライトされる。
この例だと「率」(そつ)、「備」(そなえる)などの文字がハイライトされている。
つづけて「fu」と入力すると、探したい「ソフト」の先頭箇所にマッチする。探したい単語をすべて入力しなくても検索できるのがインクリメンタルサーチの強みで、変換なんかを気にせずに日本語を探せるのが migemo の強み。
「MIGEMO 前方インクリメンタルサーチ」を Ctrl+I に、「MIGEMO 後方インクリメンタルサーチ」を Ctrl+Shift+I に割り当てるのがオススメ。元々 Ctrl+I に割り当てられてる「行の二重化」は Shift+F10 でできるし。
○タグジャンプ(ctags)
タグジャンプは関数や定数の定義箇所にジャンプするような機能ですが、これを使うためにはまず tags ファイルを準備する必要があります。
「検索(S)」→「タグファイルの作成...」から、タグファイルを準備したいディレクトリを選びます。「サブフォルダも対象にする」にもチェックを入れておきましょう。
コマンドラインオプションについては、ctags.cnf に書いているのであれば不要です。ctags.cnf を書いていない場合は、「--langmap=PHP:.php.inc --php-types=c+f+v」のように指定します。
しばらく待つと、タグファイルが生成されます。その後は関数にカーソルを合わせて・・・
F12 を押すと・・・
このように関数の定義位置にジャンプできます。元のファイルに戻りたい場合は Shift+F12 です。
■雑感
普段適当に設定してるけど、いざ説明するとなると大変だ。サクラエディタがデフォルトで PHP の設定を持ってくれると助かるんだけど、以前要望(質問?)出したときは「PHP のキーワードが多すぎてサクラエディタのファイルサイズが肥大化するから避けている」という話だったような。圧縮してデータ持てるようにしたら許されたりとか・・・しないかなぁ。
便利なマクロもいろいろあるけど、いろいろありすぎるのでいずれまた別項で。
PHP 限定のマクロという意味では phpdoc.js があるけど、ここだけは以前のしょぼいアイテムを参考にしていただく感じで。
サクラエディタ+PHP - miau's blog?
何か説明が抜けてる点や、その他便利な設定等あれば教えてください。
1月の記事に対して、いまさらという話なのかもしれませんが、
誤字なのかどうなのか分からないところがあって、
たとえば、ルールファイルの名前がphp.riとなっていますが、拡張子はriではなく、rlでは?
また、途中の説明で、
> ・コメントスタイル→行型(M): //
> ・コメントスタイル→行型(M): #
これって行型(E)か行型(G)の間違いなのでは…?