我在emacs中使用M-x align-regexp
來美化我的Perl代碼,但默認情況下它使用製表符而不是空格,這是Perl批評家不應該做的。emacs align-regexp with spaces而不是製表符
有沒有辦法改變align-regexp
的行爲,以便它填充適量的空格而不是製表符?
我在emacs中使用M-x align-regexp
來美化我的Perl代碼,但默認情況下它使用製表符而不是空格,這是Perl批評家不應該做的。emacs align-regexp with spaces而不是製表符
有沒有辦法改變align-regexp
的行爲,以便它填充適量的空格而不是製表符?
一般來說,你應該避免使用建議,但由於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所指出的那樣,這是不必要的複雜和不那麼簡單的證明,所以使用帖子頂部的代碼。
呃,直接讓'-indent-tabs-mode'綁定。像這樣:http://stackoverflow.com/a/8129994/324105。你所做的幾乎是相同的,但是不必要的冗長,並且依賴於(可能不安全)一個額外的變量。 – phils
嘗試'(setq indent-tabs-mode nil)'。 –