在 answer , 我注意到:
;; 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
文档:This function is advised.
Around-advice `align-regexp-with-spaces':
Never use tabs for alignment.
我似乎无法真正使用
align-regexp-with-spaces
,如果那应该是效果......我错过了什么?我使用了 GNU Emacs 版本 24.0.96.1 (i386-mingw-nt6.1.7601)。
最佳答案
在问这个问题时,我意识到我只是没有得到 advising functions 的想法。 .
我很清楚:
align-regexp-with-spaces
不是函数也不是变量,而只是一个名称(启用/禁用单个建议)(ad-activate 'align-regexp)
, align-regexp
只是按照我的“建议”去做:不要使用标签 所以:
ad-activate
激活通知,有效地改变原始函数的行为。伟大的!我不明白为什么这比在
align-regexp
周围定义一个函数“更好”尽管。但话又说回来,我对 Emacs Lisp 了解不多。恐怕额外的文档行只会增加困惑......
关于emacs - 广告激活有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921225/