2012-06-06 16 views
3

answer,我注意到:ad-activate做什麼?

;; Align with spaces only 
(defadvice align-regexp (around align-regexp-with-spaces) 
    "Never use tabs for alignment." 
    (let ((indent-tabs-mode nil)) 
    ad-do-it)) 
(ad-activate 'align-regexp) 

sounds有前途的,但是......它有什麼作用?

我在代碼塊上試過eval-region。但對我而言,它只是將以下內容添加到align-regexp文檔中:

建議使用此功能。

圍繞建議`對齊正則表達式與空格':
永遠不要使用製表符對齊。

我似乎不能實際使用align-regexp-with-spaces,如果這應該是效果......我錯過了什麼?

我使用的GNU Emacs版本24.0.96.1(i386-mingw-nt6.1.7601)。

回答

2

在問這個問題時,我意識到我只是沒有得到advising functions的想法。

這對我來說很清楚的是:

  • align-regexp-with-spaces不是函數,也不是一個變量,但只有一個名字(啓用/禁用單條建議)
  • 自從(ad-activate 'align-regexp)align-regexp少了點我'建議'它:不使用標籤

因此:ad-activate激活的建議,有效地改變原來的功能的行爲。大!

我不明白爲什麼這比圍繞align-regexp定義函數更好。但是接下來我對Emacs Lisp瞭解不多。

恐怕只會增加混亂文檔的額外的行...

+0

你應該能夠編輯你的問題,這一信息添加到您的問題(而不是證明了「答案」 - 這它真的不是)。 –

+0

@Trey我沒有回答這個問題嗎?答案解釋了「ad-activate」的作用。或者,也許它不。讓我們來補充一下...... –

+0

啊,也許是原來的問題不是很清楚(對我來說),以及我認爲你所問的並不是你真正想知道的...... –