1

私はphp-mode.elでEmacsを使用しています:http://php-mode.sourceforge.net/php-mode.el.html

.emacsファイルに次の行があります。

(load-file "~/.emacs.d/php-mode.el")
(require 'php-mode)
(setq c-default-style "linux" c-basic-offset 4)

ほとんどの場合、非常にうまく機能しています。問題は、コードの特定のビットについて、Emacsが他のエディターとは異なる方法でコードを表示することです。たとえば、Emacsには次のコードがあります。

public function showStuff($items, $Stuff) {
    $restrict = true;
    $stuff  = false;
    $moreStuff = true;

    if (($restrict && $stuff >= $moreStuff) 
        || ( $moreStuff > 10)) {
        return true;
    }           
    return false;
}

しかし、Eclipse / Sublime Text /TextWranglerで同じファイルを表示すると次のようになります。

public function showStuff($items, $Stuff) {
    $restrict = true;
    $stuff  = false;
    $moreStuff = true;

    if (($restrict && $stuff >= $moreStuff) 
    || ( $moreStuff > 10)) {
    return true;
    }           
    return false;
}

なぜ私がこれらの結果と可能な解決策を見ているのかについて誰かがコメントできますか?

ありがとう。

4

2 に答える 2

6

タブではなくスペースを使用したいようですので、これは基本的に次の複製だと思います。

これが見つかりません:EMACSでTABの代わりに4つのスペースを使用するにはどうすればよいですか?

または、これをPHPファイルに対してのみ必要な場合は、次を使用します。

(add-hook 'php-mode-hook 'my-php-mode-hook)
(defun my-php-mode-hook ()
  "My PHP mode configuration."
  (setq indent-tabs-mode nil
        tab-width 4
        c-basic-offset 4))

その前に、Emacsでコードが正しく見えるようにして、タブを次のようにスペースに変換します。

  • C-xh
  • M-x untabify RET

http://www.emacswiki.org/emacs/CategoryIndentationもご覧ください。

(または、少なくとも注意してください。インデントはEmacsで予想されるよりも難しい場合があり、そこには多くの優れた情報があります。)

于 2012-09-05T00:11:58.377 に答える
1

問題は、Eclipse / Foo / Barエディターがファイル内のTABを標準的な方法で表示しないことだと思います(TABは通常8列にまたがるように定義されています)。スペースとTABを組み合わせて使用​​することは問題ではありません(インデントにTABのみを使用した場合にも同様の問題が発生します)、ファイルで実際に修正する必要のあるものはないようです。これを解決する最良の方法はおそらく次のとおりです。

  1. それらのエディターの問題を報告してください(おそらくマイナーな構成の問題です)。
  2. .emacsに(setq indent-tabs-mode nil)を追加して、Emacsがこれらの問題を回避するためにどこでもスペースを使用することを好むようにします(独自のTABの挿入を妨げず、魔法のようにTABを変更しません)すでにあります)。
于 2012-09-04T18:15:35.023 に答える