emacs中的长参数缩进

时间:2014-06-25 23:36:55

标签: emacs styles indentation

我目前在emacs中使用“bsd”样式缩进。我也喜欢把自己限制在80个字符行。

在某些情况下,我将多个参数传递给函数并超过80个字符。发生这种情况时,我会插入换行符。目前,如果我使用自动缩进来继续我的行,我会得到以下结果:

function __TimeBlock($inputDay, $inputStartHour, $inputStartMinute,
$inputEndHour,  $inputEndMinute)

然而,我想要的是:

function __TimeBlock($inputDay, $inputStartHour, $inputStartMinute,
                     $inputEndHour,  $inputEndMinute)

它应该排成一行,使它直接位于上面的paren之后的第一个字符之下。

有没有办法编辑缩进,这样当我在一组parens“()”中有换行符时,我会自动获得该行为?

我希望这适用于我在emacs中编码的任何空格忽略的语言。

1 个答案:

答案 0 :(得分:0)

这对你来说可能是一个好的开始:

(add-hook 'c-mode-hook 'my-c-mode-hook)

(defun my-c-mode-hook ()
  "Customisations for C-mode and its derivatives."
  (c-set-style "bsd"))

n.b。我见过的所有PHP模式都来自c模式。

或者如果您愿意:

M-x customize-variable RET c-default-style RET

并根据需要指定bsd

FWIW,此问题的最具体的句法上下文元素符号(c-offsets-alist)似乎是:

arglist-cont-nonempty  -- Subsequent argument list lines when at
                          least one argument follows on the same
                          line as the arglist opening paren.

(但看起来你并不需要覆盖它的价值。)