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

719*_*016 6 emacs perl prettify

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

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

Gor*_*son 6

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

(defadvice align-regexp (around align-regexp-with-spaces activate)
  (let ((indent-tabs-mode nil))
    ad-do-it))
Run Code Online (Sandbox Code Playgroud)

这是我的原始版本:

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

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

  • 呃,直接让`indent-tabs-mode`绑定.像这样:http://stackoverflow.com/a/8129994/324105.你所做的几乎是相同的,但是不必要的冗长,并且依赖(可能不安全)一个额外的变量. (2认同)