emacs align-regexp与空格而不是制表符

时间:2014-03-28 10:21:57

标签: perl emacs prettify

我在emacs中使用M-x align-regexp来美化我的Perl代码,但默认情况下它使用制表符而不是空格,这是Perl评论家不应该做的事情。

有没有办法改变align-regexp的行为,以便填充适当数量的空格而不是标签?

1 个答案:

答案 0 :(得分:6)

一般来说,你应该避免使用建议,但由于align.el直接读取indent-tabs-mode的值,它可能是最好的方法:

(defadvice align-regexp (around align-regexp-with-spaces activate)
  (let ((indent-tabs-mode nil))
    ad-do-it))

这是我原来的版本:

(defadvice align-regexp (around align-regexp-with-spaces activate)
  (let ((old-indent-tabs-mode indent-tabs-mode))
    (setq indent-tabs-mode nil)
    ad-do-it
    (setq indent-tabs-mode old-indent-tabs-mode)))

正如@Phils指出的那样,这是不必要的复杂而且不那么简单,所以请使用帖子顶部的代码。