2009-07-14 16 views
5

私は通常、最初の<?phpの後に1レベルのインデントでPHPをコードしますが、php-modeでEmacsの設定を見つけるのが難しいです。EmacsでPHPの初期インデントレベルを設定していますか?

明確にするため、ここでは、Emacsがやっていることだ。

<?php 
    echo "Hello."; 

    if (something) 
     do_something(); 

Emacsのバージョン23(ストレートCVSから)、PHPモード1.5.0:

<?php 
echo "Hello."; 

if (something) 
    do_something(); 

そして、ここでは、どのように私は、通常のコードです。

+0

どのバージョンのemacsとphp-modeを使用していますか? – drudru

+0

Emacs 23 CVS(昨晩からビルド)、php-mode 1.5.0。 –

答えて

2

、私は思う:

(c-set-offset 'topmost-intro 4) 
(c-set-offset 'cpp-macro -4) 

が動作しているようです。 topmost-introはすべてを設定し、私が言うことができる限り、cpp-macro<?phpタグのみを設定します。

私は答えにつながったヒントのためにCheesoに感謝します。

0

php-modec-modeから派生したので、私はあなたが必要とするすべてだと思う:それはあなたが何を意味はない場合

(setq-default indent-tabs-mode nil) 
(setq standard-indent 2) 
(setq default-tab-width 2) 
(add-hook 'c-mode-common-hook 
    #'(lambda() 
    (setq c-basic-offset tab-width))) 

、多分あなたはtab-stop-listを探していますか?

+1

いいえ、それは動作するとは思わない。ちょうどタブの設定を設定するだけで、最初のインデントレベルでは何も表示されません。 (私はEmacsでもそれを実行し、タブの幅を除いて何も変わっていませんでした) –

1

私はphpモードを持っていませんが、cモードでは、M-x c-set-offsetが役立ちます。 - 構文要素のオフセットをカスタマイズできるようになり、現在の行にどの要素が使用されたかが表示されます。解決策が見つかりました

+0

topmost-introを4に設定することでほぼ得ましたが、残念なことに、 '<?php'を含む4つのスペースすべてをインデントします。 –

+0

Ah - 別の構文要素でM-x c-set-offsetを使用しなければならない場合があります。 – Cheeso

+0

ええ、ポイントの下にあるアイテムの構文要素を取得する方法はありますか? –

関連する問題