PHP開発で追加しておきたいEmacs Lisp 8選
はじめまして、アシアルで働くようになってまだ三週間ほどの高橋と申します。
ブログを書くのもはじめてのことなので、何か至らないところがありましたら、ご指摘くださると助かります。
さて、皆さんはPHPで開発を行う際、エディタは何を使っていますか?
私はEmacsというエディタを使っています。Emacsは使いはじめこそとっつきにくいのですが、慣れてしまうと離れられない魅力が一杯詰まった素敵なエディタです。
今回はそんなEmacsでPHPの開発環境を作る場合に、追加しておくと開発がより便利になるelispを8個選んで紹介してみたいと思います。
なお、標準のEmacsに含まれているものは除外しています。
1. PHP mode for Emacs
EmacsでPHPのコードを書くなら、やはりこれが必須です。そのためか、追加インストールしなくても使えるようになってるディストリビューションも多いです。
このモードを使うと、コードの色付け、関数名の入力補完、PEARコーディング規約に準拠した編集などが行えます。
なお、入力補完を行うには、PHPのHTMLマニュアルをダウンロードして、/usr/local/share/php/docなどへ展開しておく必要があります。
2. A CSS editing mode for emacs
HTMLと一緒によく書くものといえば、スタイルシートですね。そのCSSを編集するためのモードです。
コードの色付けはもちろんのこと、M-TABでプロパティ名の補完ができるようになり、入力するのがとても楽になります。
3. Major mode for editing JavaScript source code
Ajaxを使うサイト開発に必要なJavaScriptを編集するためのモードです。ただ、いつの間にか配布していたサイトが404 Not Foundになってました……。
一応こちらの方の記事によると、Internet Archiveからダウンロードできるようですが、何か問題でもあったんでしょうか?
※トラックバックで教えていただいたのですが、こちらのURLでサイトが復活したようです(2007年5月9日追記)
4. MMM Mode
例えば、HTMLファイルを編集する際、styleタグで囲まれているところはcss-mode、他はhtml-modeといったように、カーソルの位置にあわせて複数のモードを自動的に切り替えてくれます。
5. Mule-UCS
最近では、PHPのエンコーディングをUTF-8として開発している方も多いのではないでしょうか。
Mule-UCSをいれることで、UTF-8やJIS X 0213などの文字コードを扱えるようになります。
なお、現在オフィシャルサイトにアクセスできないのですが、Hideyuki SHIRAI's Web pageからダウンロードできます。
6. Subversion Interface for emacs
PHP開発に限ったことではありませんが、ソースコードのバージョン管理は大切ですね。アシアルでもSubversionを使って管理しています。
psvnはそのSubversonのインターフェースとなり、手動でsvnコマンドを実行するよりも手軽な操作性を提供してくれます。
実際に操作する場合は、チェックアウトしたファイルのあるところでM-x svn-statusを実行します。
7. ElScreen
バッファを複数に分割して作業をしていると、そのバッファの状態を保ったまま、別のバッファへ切り替えたくなることが多々あります。
window環境であれば別フレームを開くことで対応できますが、フレームが多くなると切り替えが大変ですし、ターミナル環境ではそうはいきません。
ElScreenを使えば、ひとつのフレーム内で複数のスクリーンを素早く切り替えることができ、慣れると手放せなくなります。
8. TRAMP
さて、これまで紹介してきたelispをインストールして快適な開発環境を構築したとしても、作業マシンが変わってしまったら、もうその環境は使えません。かといって、マシン毎に開発環境を構築するのは非常に手間がかかって面倒ですね。
TRAMPを使うと、
といった操作で、別のマシンにあるファイルを、まるでローカルマシンにあるかのように編集したり、diredで移動したりといったことができるため、お気に入りのEmacs環境をひとつ作るだけで大丈夫になります。
以上、駆け足の紹介となりましたが、如何だったでしょうか?
8個選ぶならこの8個のほうがいいとか、他にPHPの開発が便利になるelispをご存知でしたら、ぜひぜひお教えください。
ブログを書くのもはじめてのことなので、何か至らないところがありましたら、ご指摘くださると助かります。
さて、皆さんはPHPで開発を行う際、エディタは何を使っていますか?
私はEmacsというエディタを使っています。Emacsは使いはじめこそとっつきにくいのですが、慣れてしまうと離れられない魅力が一杯詰まった素敵なエディタです。
今回はそんなEmacsでPHPの開発環境を作る場合に、追加しておくと開発がより便利になるelispを8個選んで紹介してみたいと思います。
なお、標準のEmacsに含まれているものは除外しています。
1. PHP mode for Emacs
EmacsでPHPのコードを書くなら、やはりこれが必須です。そのためか、追加インストールしなくても使えるようになってるディストリビューションも多いです。
このモードを使うと、コードの色付け、関数名の入力補完、PEARコーディング規約に準拠した編集などが行えます。
なお、入力補完を行うには、PHPのHTMLマニュアルをダウンロードして、/usr/local/share/php/docなどへ展開しておく必要があります。
- ;
設定例 - (autoload
'php-mode "php-mode") - (setq
auto-mode-alist (cons '("\\.php\\'" . php-mode) auto-mode-alist)) - (setq
php-mode-force-pear t) - (add-hook
'php-mode-user-hook -
'(lambda () -
(setq php-manual-path "/usr/local/share/php/doc/html") -
(setq php-manual-url "http://www.phppro.jp/phpmanual/")))
2. A CSS editing mode for emacs
HTMLと一緒によく書くものといえば、スタイルシートですね。そのCSSを編集するためのモードです。
コードの色付けはもちろんのこと、M-TABでプロパティ名の補完ができるようになり、入力するのがとても楽になります。
- ;
設定例 - (autoload
'css-mode "css-mode") - (setq
auto-mode-alist (cons '("\\.css\\'" . css-mode) auto-mode-alist)) - (setq
cssm-indent-function #'cssm-c-style-indenter)
3. Major mode for editing JavaScript source code
Ajaxを使うサイト開発に必要なJavaScriptを編集するためのモードです。ただ、いつの間にか配布していたサイトが404 Not Foundになってました……。
一応こちらの方の記事によると、Internet Archiveからダウンロードできるようですが、何か問題でもあったんでしょうか?
※トラックバックで教えていただいたのですが、こちらのURLでサイトが復活したようです(2007年5月9日追記)
- ;
設定例 - (add-to-list
'auto-mode-alist (cons "\\.js\\'" 'javascript-mode)) - (autoload
'javascript-mode "javascript" nil t) - (setq
js-indent-level 4)
4. MMM Mode
例えば、HTMLファイルを編集する際、styleタグで囲まれているところはcss-mode、他はhtml-modeといったように、カーソルの位置にあわせて複数のモードを自動的に切り替えてくれます。
- ;
設定例 - (require
'mmm-auto) - (setq
mmm-global-mode 'maybe) - ;(set-face-background
'mmm-default-submode-face nil) ;背景色が不要な場合 - (mmm-add-classes
'((embedded-css :submode css-mode :front "<style[^>]*>" :back "</style>"))) - (mmm-add-mode-ext-class
nil "\\.html\\'" 'embedded-css)
5. Mule-UCS
最近では、PHPのエンコーディングをUTF-8として開発している方も多いのではないでしょうか。
Mule-UCSをいれることで、UTF-8やJIS X 0213などの文字コードを扱えるようになります。
なお、現在オフィシャルサイトにアクセスできないのですが、Hideyuki SHIRAI's Web pageからダウンロードできます。
- ;
設定例 - (require
'jisx0213) - (set-language-environment
"Japanese")
6. Subversion Interface for emacs
PHP開発に限ったことではありませんが、ソースコードのバージョン管理は大切ですね。アシアルでもSubversionを使って管理しています。
psvnはそのSubversonのインターフェースとなり、手動でsvnコマンドを実行するよりも手軽な操作性を提供してくれます。
実際に操作する場合は、チェックアウトしたファイルのあるところでM-x svn-statusを実行します。
- ;
設定例 - (autoload
'svn-status "psvn" nil t)
7. ElScreen
バッファを複数に分割して作業をしていると、そのバッファの状態を保ったまま、別のバッファへ切り替えたくなることが多々あります。
window環境であれば別フレームを開くことで対応できますが、フレームが多くなると切り替えが大変ですし、ターミナル環境ではそうはいきません。
ElScreenを使えば、ひとつのフレーム内で複数のスクリーンを素早く切り替えることができ、慣れると手放せなくなります。
- ;
設定例 - (require
'elscreen) - (if
window-system (define-key elscreen-map "\C-z" 'iconify-or-deiconify-frame) (define-key elscreen-map "\C-z" 'suspend-emacs))
8. TRAMP
さて、これまで紹介してきたelispをインストールして快適な開発環境を構築したとしても、作業マシンが変わってしまったら、もうその環境は使えません。かといって、マシン毎に開発環境を構築するのは非常に手間がかかって面倒ですね。
TRAMPを使うと、
- C-x
C-f /user@host:/path/to/remote/file - C-x
d /user@host:/path/to/remote/dir
といった操作で、別のマシンにあるファイルを、まるでローカルマシンにあるかのように編集したり、diredで移動したりといったことができるため、お気に入りのEmacs環境をひとつ作るだけで大丈夫になります。
- ;
設定例 - (require
'tramp)
以上、駆け足の紹介となりましたが、如何だったでしょうか?
8個選ぶならこの8個のほうがいいとか、他にPHPの開発が便利になるelispをご存知でしたら、ぜひぜひお教えください。
コメント
トラックバック
-
- Javascript-mode ver.2 from From a Far East Island
- もうみなさんご存知かもしれませんが、2006-12-26にhigeponさんの所で参照...
2007年05月09日 12:19
最近の記事
- 【AS3】「ActionScript3の、こんなときどうするの??」 [2010年02月09日 : 橋本章史]
- Twitter-APIを使ってみました [2010年02月05日 : 中川善樹]
- PHPの名前空間と主要フレームワークの対応について [2010年02月04日 : 小川雄大]
- HDDのフォーマットには時間がかかるんです [2010年02月01日 : 岡本雄樹]
- GoogleChrome に Firebug extension をいれてみた + よさげなextensionまとめ [2010年01月26日 : 松田惇]
- 社員旅行で作成した陶磁器が完成しました! [2010年01月21日 : 阿部恵]
- PHPでコマンドライン・アプリケーションを簡単に作成する [2010年01月20日 : 小川雄大]
- kvmでwindows7を入れてみました [2010年01月20日 : 門脇優児]
- ratproxyとSelenium IDEを組み合わせたWebアプリケーションテスト [2010年01月15日 : 川原美和]
- lsyncdでファイルを同期してみよう [2010年01月13日 : 熊谷裕志]



こんなのもあるみたいです.
http://www.blik.it/2007/02/21/syntax-checking-for-php-in-emacs/
早速試してみたところ、リアルタイムで構文をチェックしてエラーを教えてくれるので、なかなか便利ですね。
TRAMP経由だと動かなかったのと、ターミナルではポップアップが出ないので、そこが改善できたら常用したい一品ですね。
これから使い始める感じなのですが、
windows環境でgnu-emacs、meadowを利用する際にはcygwinという
ものが必要だと色々な所で拝見したのですがcygwinの導入から
詳しい方がいらっしゃれば方法などお聞かせ願いたいのですが。
現在はemacs,meadow共にcygwinは入れていないのですが動いています。使い始め程度なのでこれから使っていく内にcygwinがない
事から問題が出てきますか?
Cygwinは必須というわけではありませんので、Emacs/Meadowを動作させるだけでしたら、特に問題はありません。
ただ、Cygwinを入れることでより便利になりますので、個人的には導入されることをオススメします。
Meadowをお使いであれば、
http://www.bookshelf.jp/soft/meadow_9.html#SEC50
の解説が参考になりますので、ご覧いただければと思います。
他いくつか疑問点があるのでお答え願えれば幸いです。
"Cygwinを入れることでより便利に"というのは具体的には
どういった恩恵が受けられますか?
その際にはEmacs/Meadowはcygwin/home/...等のcygwin内に作る
のですか?
度々すみません。
これらの操作はCygwinが提供するコマンドと連携して動作するため、Cygwinを入れる必要がありますが、外部コマンドの不要な操作であれば問題なく動作しますので、とりあえずEmacsの基本的な操作に慣れるまではそのまま使ってみて、実際に必要な状況になってから導入されても遅くはないと思われます。
また、Cygwinを導入しても、Emacs/MeadowをCygwinフォルダ内に作る必要はありません。それぞれ独立したフォルダで動作しますので、いつインストールしても大丈夫です。
このあたりの設定方法についても先ほどのページに書かれていますので、一読していただけますと幸いです。
(初歩的な部分ですが)
ありがとうございます。
またいくつか疑問があったのでお時間ある時にでも答えていただけたらと思います。
Emacsを使用していて且つCaps LockをCtrlに変更している皆さんはキーボードドライバーは英語になさっているんですか?
その際、CapsLockキーはレジストリを書き換えてCtrlキーに変更しています。
以上、ご参考まで。
mmm-modeなのですが、色々なサイトを拝見したところ導入時
make install
で、って書かれ方していたのですかunixシェルの知識が無いので
うまく出来ませんでした。
site-lispディレクトリに入れ、.elファイルをbyte-compileする
だけではだめなのでしょうか。
宜しくお願いいたします。
.elファイルをbyte-compileしてsite-lispディレクトリへ入れる作業を、make installを使って自動で行うか、手動で行うかの違いだけですので。
ありがとうございます。
Meadowは特に指定しなくても日本語が使えてUTF-8ファイルも操作出来てるみたいなのですが、emacsに関しては日本語が使える設定にいろいろ説明サイトを見てるますがよくわかっていません。
Meadowが使えているんだし良いと言えば良いのですが。どのように設定なさっていますか?私はwindows環境なのですが...。
教えていただけたら幸いです。
私もWindows環境ではMeadowしか使ってませんので、ちょっとわかりません。
ただ、
http://homepage.mac.com/matsuan_tamachan/emacs/index.html#2
にて公開されているNTEmacsは、はじめから日本語入力やフォントの設定がされているようですので、試してみてはいかがでしょうか?
教えていただくばかりですみません。
こちらからも何か情報が提供できればなぁとは思っているのですが覚えることの方が多くて。。。
また教えていただきたいのですが
mmm-modeの設定でPHP開発で追加しておきたいEmacs Lisp 8選での設定例を参考に
;; mmm-mode 設定例
(require 'mmm-auto)
(setq mmm-global-mode 'maybe)
;;(set-face-background 'mmm-default-submode-face nil) ;背景色が不要な場合
(mmm-add-classes
'((embedded-css
:submode css-mode
:front "<style[^>]*>"
:back "</style>")))
(mmm-add-classes
'((html-script
:submode javascript
:front "<script[^>]*>"
:back "</script>")))
(mmm-add-mode-ext-class nil "\\.html\\'" "\\.tpl\\'" '(embedded-css html-script))
としてみました。
つもりとしては<style>内はcss-mode,<script>内でもjavascript,で且つ.htmlファイルのみじゃなく.tplファイルでも
と思ったんですがエラーになりました。
いろいろ書き方を変えてみたんですがcss-modeの方まで効かなくなったりで。。。
ご指摘いただけたらと思います。
よろしくお願いいたします。
ご希望の動作を行わせるには、単純に
(mmm-add-mode-ext-class nil "\\.html\\'" 'embedded-css)
(mmm-add-mode-ext-class nil "\\.html\\'" 'html-script)
(mmm-add-mode-ext-class nil "\\.tpl\\'" 'embedded-css)
(mmm-add-mode-ext-class nil "\\.tpl\\'" 'html-script)
と記述すれば大丈夫かと思われます。
また、auto-modeの設定を
(setq auto-mode-alist
(append '(("\\.html$" . html-helper-mode)
("\\.tpl$" . html-helper-mode))
auto-mode-alist))
のように行っている場合は、
(add-to-list 'mmm-mode-ext-classes-alist
'(html-helper-mode nil embedded-css))
(add-to-list 'mmm-mode-ext-classes-alist
'(html-helper-mode nil html-script))
と記述しても動作すると思われます。
参考にしていろいろと試させていただきます。
これまではgrepする際は別のエディタでやっていたんですが、
調べたら、というか当然meadowからも行えるだろうと思ってたんですが、
ここでcygwinが必要のようでいくつか設定の説明を行っているサイトを覗いたら
pathを設定、とか autoexec.batの設定
SET PATH=C:\cygwin\bin;C:\cygwin\sbin;C:\cygwin\usr\bin;%PATH%
SET PATH=C:\cygwin\usr\sbin;C:\cygwin\usr\local\bin;%PATH%
SET SHELL=bash.exe
として、など書かれていたのですが、
これは普通に読んで環境変数の変更からパスの設定を上記のようにすればいいのですか?
autoexec.batが見当たらなかったので。。。
ただ、以前ご紹介したページにそのあたりのことも書いてあると思うのですが……。
(というか仕事先でもともと入っていたのでなんとなく触る程度なだけ)
このcygwinでこれが便利!とかこれがあるから手放せない!とかってなんですか?
私コマンドプロンプトと大して変わらない程度しか使えてません。上に書かれてるemacsも入ってなくてvimを使ってますけど何も色ついてないし...。
他の利点につきましては、
http://pitecan.com/ASCII/diary0109.html
の記事に良くまとまっていますので、ご覧くださいませ。
ただ、私も基本的にMeadowとの連携で使用することが大半で、Cygwin単体で使うことは余りないですね。
UNIX系の環境が必要な場合は、coLinuxやVMWareを使ってGNU/Linuxを稼動させますので。
なお、Cygwinのvimはそのままでは何も設定されていませんので、ホームディレクトリへ次のような内容の「.vimrc」を作成すれば色が付くと思います。
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
私もcygwin入れてます。便利といえば便利ですがきちんとshellが使えているは微妙なのですが、、、。
cygwinの導入時フルパッケージで入れていらっしゃいますか?私は普段自分が使うのはそれほどたいした物じゃないノートpcなので最小構成しか入れていません。
また参考までに意見を伺いたいのですが、近々ではないけれどunixに慣れなければいけない時、unix環境を普通スペックのノートPCのwinXPを維持したままで使いたいとして、cygwin, coLinux, デュアルブートではどの方法を用いますか?
私もCygwinのパッケージを全部は導入していません。必要なもののみインストールするようにしています。
あと、あくまで個人的な意見ですが、上記三つのなかであれば、coLinuxを選びます。WindowsとLinuxが同時に稼動でき、Cygwinよりも本格的な実行環境が構築できますので。
また、UNIX系OSのインストール作業も覚えたいといった場合ですと、デュアルブートを選びます。ただ、デュアルブートはインストール時の操作ミスでWindows用のパーティションを壊してしまう可能性もありますので、選択肢にはありませんでしたが、VMWareが一番楽かも知れません。
以上、ご参考まで。
ちょうどwebDBpressで取り上げられていたので参考にして導入してみたのですが、、。
colinux0.6.4でFedora7を入れたのですが、apache,php等が入っていない為ダウンロードしようと思いがんばってみたのですが、、。linuxでの諸々のダウンロードインストール経験がないので上記の本を参考にyum installでlistやらsudoをインストールしようとしたのですが、
could not retrieve mirrorlist http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-7&arch=i386 error was [error 4] ioerror <urlopen error (-3, 'temporary failure in name resolution')> error: cannot open/read repomd.xml file for repository: redora
となってインストールができませんでした。
何か設定でミスがあったのでしょうか?
お忙しいとは思いますが教えていただけたらとても助かります。
失礼します。
$ ping mirrors.fedoraproject.org
を実行してパケットが返ってこないようであれば、ネットワークの設定を見直してみるのがよろしいかと思われます。
windowsのfirewallを停止したら普通にインストール出来ました。
お騒がせしました。
ちなみにですがcolinuxをインストールする際fedoraかdebianのイメージを選べたのですがこの2種の場合どちらを選択しますか?