5

回答中,我注意到:

;; 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)

听起来很有希望,但是......它有什么作用?!

我尝试eval-region了代码块。但对我来说,它所做的只是在align-regexp文档中添加以下内容:

建议使用此功能。

around-advice `align-regexp-with-spaces':
永远不要使用制表符进行对齐。

我似乎无法实际使用align-regexp-with-spaces,如果这应该是效果......我错过了什么?

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

4

1 回答 1

4

在问这个问题时,我意识到我只是没有得到建议功能的想法。

我很清楚:

  • align-regexp-with-spaces不是函数也不是变量,而只是一个名称(启用/禁用单个建议)
  • 从那以后(ad-activate 'align-regexp)align-regexp就按照我的“建议”去做:不要使用标签

所以:ad-activate激活通知,有效地改变原始函数的行为。伟大的!

我不明白为什么这比定义一个函数“更好” align-regexp。但话又说回来,我对 Emacs Lisp 了解不多。

恐怕额外的文档行只会增加混乱......

于 2012-06-06T19:55:08.807 回答