5

我的 php 代码无法正确缩进时遇到问题...

我希望我的代码看起来像这样

if (foo)
{
    print "i am indented";
}

但它总是看起来像这样:

if (foo)
  {
    print "i am not indented correctly";
  }

我厌倦了在谷歌上搜索类似的东西,并尝试将以下内容添加到我的 .emacs 中,但它根本不起作用。

有什么想法吗?

 (add-hook 'php-mode-hook
          (function (lambda ()
                      ;; GNU style
                      (setq php-indent-level 4
                            php-continued-statement-offset 4
                            php-continued-brace-offset 0
                            php-brace-offset 0
                            php-brace-imaginary-offset 0
                            php-label-offset -4))))
4

3 回答 3

12

自定义 c-default-style 变量。将此添加到您的 .emacs 文件中:

(setq c-default-style "bsd"
      c-basic-offset 4)

bsd 风格说明

于 2009-01-27T22:12:42.957 回答
1

自定义变量 c-default-style。您要么希望您的“其他”模式(或“php”,如果可用)设置为“bsd”,或者您可以将所有模式中的 hte 样式设置为 bsd。

据我了解,PHP 模式是建立在 c 模式之上的,所以它继承了它的自定义。

于 2008-10-03T20:17:51.193 回答
1

试试这个:

(defun my-build-tab-stop-list (width)
  (let ((num-tab-stops (/ 80 width))
        (counter 1)
        (ls nil))
    (while (<= counter num-tab-stops)
      (setq ls (cons (* width counter) ls))
      (setq counter (1+ counter)))
    (nreverse ls)))

(add-hook 'c-mode-common-hook
      #'(lambda ()
          ;; You an remove this, if you don't want fixed tab-stop-widths
          (set (make-local-variable 'tab-stop-list)
               (my-build-tab-stop-list tab-width))
          (setq c-basic-offset tab-width)
          (c-set-offset 'defun-block-intro tab-width)
          (c-set-offset 'arglist-intro tab-width)
          (c-set-offset 'arglist-close 0)
          (c-set-offset 'defun-close 0)
          (setq abbrev-mode nil)))
于 2008-10-05T10:29:29.163 回答