2014-03-28 58 views
3

我在emacs中使用M-x align-regexp來美化我的Perl代碼,但默認情況下它使用製表符而不是空格,這是Perl批評家不應該做的。emacs align-regexp with spaces而不是製表符

有沒有辦法改變align-regexp的行爲,以便它填充適量的空格而不是製表符?

+7

嘗試'(setq indent-tabs-mode nil)'。 –

回答

5

一般來說,你應該避免使用建議,但由於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所指出的那樣,這是不必要的複雜和不那麼簡單的證明,所以使用帖子頂部的代碼。

+2

呃,直接讓'-indent-tabs-mode'綁定。像這樣:http://stackoverflow.com/a/8129994/324105。你所做的幾乎是相同的,但是不必要的冗長,並且依賴於(可能不安全)一個額外的變量。 – phils

相關問題