人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Emacsの設定についての質問です。
今までphp-modeでphpを書いていたのですが、最近になってhtmlタグとphpスクリプトが混在しているファイルを扱うようになりました。
そこでmmm-modeを導入したのですが、php-modeのインデント規則は引き継げるのですが、着色設定をどうしても引き継げません。
実現したいことは
htmlタグ->html-modeのインデント
phpスクリプト->php-modeのインデント+着色
です。
回答はできれば.emacsに書くEmacs Lispで書いていただけると助かります(が、必須ではありません)。


ちなみに設定の際に参考にしたURLは
http://bluestar.s32.xrea.com/text/php-mode.php
http://d.hatena.ne.jp/Tetsujin/20070430
です。
以上、よろしくお願いいたします。

●質問者: k1LoW
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.emacs Emacs Emacs Lisp HTML MMM
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● yosuke_ss
●10ポイント

php-modeのlispを見れば書いてあるだろ。

◎質問者からの返答

確かにphp-modeのLispを見ればどのような着色設定なのかはわかると思います(自分が読みきるかはおいておいて)。

ただ、mmm-modeのsub modeにphp-modeの着色設定(もしくは近い設定)を書く方法がわかっていないというのが現状です。


2 ● minkpa
●10ポイント

http://www.hpc.cs.ehime-u.ac.jp/~aman/cvsweb/cvsweb.cgi/dot_file...

◎質問者からの返答

これはColor-Mateですね。

使ったことはないのですが、これは全体的なカラーリング設定を決めるものだと解釈しております。

自分が実現したいことはhtmlタグはhtml-modeのインデント設定を"引継ぎ"、phpスクリプトはphp-modeのインデント設定と着色設定を"引き継ぐ"ことなのです。


3 ● tmasao
●60ポイント ベストアンサー

着色設定というのは、おそらく font-lock によるハイライト表示機能のことをさしているのかと思いますが、mmm-mode にはその設定はありません。単にサブモード側の設定を呼び出しているだけですので、php-mode側の設定ができていない、もしくはどこかでエラーになっている可能性を疑ったほうがよいかと思います。

手元で簡単なPHPスクリプトを対象に試してみた限りでは、以下の設定だけであとは何も設定しなくとも、ハイライト表示できました(Emacs 21.3)。

(autoload 'php-mode "php-mode" "Mode for editing PHP files")

(require 'mmm-mode)

(require 'mmm-sample)

(setq mmm-global-mode 'maybe)

(mmm-add-mode-ext-class nil "\\.php\\'" 'html-php)

いったん、mmm-modeをオフにしてみて、当該ファイルを php-mode として読み込んでみて、うまくハイライトされるか確認してみるとよいのではないかと思います。

また、M-x toggle-debug-on-error でエラー時にデバッグがかかるようにして、php-modeのサブモード設定時に途中でエラーになる箇所が出ていないか、確認してみるのもよいと思います。php-mode ではありませんが、mmm-modeでの呼び出し時に hook の実行エラーが出たことがあります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ