我想让emacs缩进ruby方法调用,如:
foo(
:blah => 'bar',
:shibby => 'baz'
)
我能得到的最接近的是:
foo(
:blah => 'bar',
:shibby => 'baz'
)
这是使用ruby-deep-indent-paren,ruby-deep-indent-paren-style,ruby-deep-arglist设置为nil。
哈希缩进我喜欢的方式...如果我可以像哈希那样使方法调用缩进,我会很高兴。有什么想法吗?
答案 0 :(得分:12)
Dmitry Gutov已使用建议发布this fix,这似乎有效:
(defadvice ruby-indent-line (after unindent-closing-paren activate)
(let ((column (current-column))
indent offset)
(save-excursion
(back-to-indentation)
(let ((state (syntax-ppss)))
(setq offset (- column (current-column)))
(when (and (eq (char-after) ?\))
(not (zerop (car state))))
(goto-char (cadr state))
(setq indent (current-indentation)))))
(when indent
(indent-line-to indent)
(when (> offset 0) (forward-char offset)))))
答案 1 :(得分:5)
当前Emacs主干中的Ruby缩进(将被发布为24.4)就像你要求的那样没有任何额外的调整。
答案 2 :(得分:0)
我相信有一个像C-c o这样的关键序列,你可以用光标按下那个显示使用了什么变量的关闭窗口,让你输入一个新值(比如0或+)。试试吧!