Emacs PHP缩进

Tom*_*ill 1 php emacs coding-style code-formatting indentation

我在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)
Run Code Online (Sandbox Code Playgroud)

它在大多数情况下都非常好用.问题是对于某些代码位,Emacs以不同的方式显示代码与其他编辑器.例如,我在Emacs中有以下代码:

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

    if (($restrict && $stuff >= $moreStuff) 
        || ( $moreStuff > 10)) {
        return true;
    }           
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但是在Eclipse/Sublime Text/Text Wrangler中查看相同的文件看起来像:

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

    if (($restrict && $stuff >= $moreStuff) 
    || ( $moreStuff > 10)) {
    return true;
    }           
    return false;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以评论为什么我看到这些结果和可能的解决方案?

谢谢.

phi*_*ils 6

因为看起来你想使用空格而不是标签,我认为这基本上是一个副本:

我找不到这个:如何在EMACS中使用4个SPACES而不是TAB?

或者,如果您只想要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))
Run Code Online (Sandbox Code Playgroud)

在此之前,如果代码在Emacs中看起来正确,请将选项卡转换为空格:

  • C-xh
  • M-x untabify RET

我还要看一下:http:
//www.emacswiki.org/emacs/CategoryIndentation

(或者注意到它,至少 - 在Emacs中缩进可能比预期的要复杂,并且那里有很多好的信息.)