2010-12-16 15 views
90

私はemacsを使ってHTMLタグとjavascriptの両方のコンテンツを持つHTMLファイルを編集する最初の苦労を始めました。私はnxhtmlをインストールし、それを使ってみました。つまり、.htmlファイルにnxhtml-mumamo-modeを使うように設定しました。しかし、私はそれを愛していません。コードのJavascript部分を編集しているときに、タブインデントはC/C++コードを編集するときと同じように動作しません。それは行内にタブを置くことを開始し、行の前にある空白の中でタブを押すと、その行を再テーピングするのではなくタブが挿入されます。Javascriptを含むHTMLファイルを編集するためのemacsの設定方法を教えてください。

私が気に入らないもう一つの側面は、通常のC/C++モードのようにシンタックスカラーリングをしないということです。私は、HTMLファイルを編集するときにデフォルトのJavaモードの動作を好みますが、HTMLコードでうまく動作しません。 :-(

1)Javascriptの部分でHTMLファイルを編集するためのより良いモードがありますか?

2)nxhtmlにjavascriptの部分にデフォルトのJavaモードを使用させる方法はありますか?

よろしく、

M

+0

私は理論的にはこれを行いますが、それは一種の嫌だMMM-modeを使用し、私はそれで本当に満足していません。私はemacswikiから自分の設定にたくさんのlispを貼り付けましたが、本当に数週間かかることはありませんでした。 emacsの使用に興味がある方は、emacsを設定するよりも、もっと簡単にしたいと思っています。 – Nathan

+1

私は回避策が2つのファイルを作成し、 '

6

はない本当に良い解決策が、あなたが本当にあなたのhtmlでJavaScriptを持っている必要がある場合は、クイックフィックスは、javascriptを含む領域を選択して、コマンドnarrow-to-regionC-x n n)を使用して、お好みのJavaScriptに切り替えることですモード。コマンドwidenは、(C-x n w)を返します。

0

nxhtmlを間違って設定したようです。必要な唯一のセットアップはautostart.elファイルをロードする必要があり、すべてがあるレベルまで機能するはずです。 nxhtmlはどんな形でも完璧ではありませんが、html/css/javascript/makoのための私の経験は、少なくともmako以外のものはかなり良いです。しかし、私は本当に私がマコパートと台無しにしたと確信しています。

これは私が私のnxhtmlを初期化する方法である:

(when (load "autostart.el" t) 
    (setq nxhtml-skip-welcome t 
     mumamo-chunk-coloring 'submode-colored 
     indent-region-mode t 
     rng-nxml-auto-validate-flag nil)) 
39

別の解決策は、multi-web-modeです:

より簡単に設定、すでに multi-modeを述べたよりもかもしれ

https://github.com/fgallina/multi-web-mode

(require 'multi-web-mode) 
(setq mweb-default-major-mode 'html-mode) 
(setq mweb-tags 
    '((php-mode "<\\?php\\|<\\? \\|<\\?=" "\\?>") 
    (js-mode "<script[^>]*>" "</script>") 
    (css-mode "<style[^>]*>" "</style>"))) 
(setq mweb-filename-extensions '("php" "htm" "html" "ctp" "phtml" "php4" "php5")) 
(multi-web-global-mode 1) 

こちら(ため息)Emacsの複数の複数のモードの詳細:

http://www.emacswiki.org/emacs/MultipleModes

UPDATE:

あなたはこのようなあなたの.emacsファイルにお好みのモードを設定するには、正規表現を簡素化JavaScriptやCSSの領域を検出してHTML5で動作させることができます。超精密で壊れやすい正規表現は必要ありません。

+3

それを試してみて、それを愛する、ありがとう! –

+0

私のシンプルなhtml/javascript編集には本当にうまく機能します。 –

+0

html5のようなより多くのケースを処理するためにフライメイク – juanmirocks

31

私はJS、CSS、Java(JSP)、PHPを組み込んだHTMLテンプレートの編集というメジャーモードweb-mode.elを作成しました。 http://web-mode.org にダウンロードすることができます。Web-mode.elは、ブロックのタイプに応じて構文のハイライトとインデントを行います。 インストールは簡単です:

(require 'web-mode) 
(add-to-list 'auto-mode-alist '("\\.html$" . web-mode)) 
+0

ウェブモードはパッケージとしても利用できます。少なくともMELPAから。 – mcginniwa

+0

再生/カミソリのエンジンサポートがあります! – juanmirocks

+0

こんにちはfxbois、なぜ私にとってはうまくいかないのですか? web-mode.elを/ use/local/share/emacs/site-lisp /にコピーし(他の.elファイルはすべて削除した)、web-mode.orgの「インストール」セクション(および.emacsファイルのみその数行ある)。あなたは助けてもらえますか?ありがとう。 –