不久前,我为一些具有特定格式的文件创建了一个.el文件(epx.el)。我通过init.el通过(require 'epx)加载它。
问题是,在这个epx.el中,有:
(defadvice comment-region (after indent-after activate)
(indent-region beg end)
)
(defadvice uncomment-region (after indent-after activate)
(indent-region beg end)
)我遇到了麻烦,因为它会影响其他主要模式(特别是python模式下的注释函数(如comment-dwim)的行为:当我取消注释一个注释区域时,它会破坏我的缩进.)。如果我在epx.el中评论这些行,就不会再有问题了。
那么,这些(defadvice ...)怎么可能只在epx的主要模式下起作用呢?
谢谢!
发布于 2015-01-29 20:09:40
您可以检查当前缓冲区的主要模式,只有在它是exp-mode时才能采取行动
(defadvice comment-region (after indent-after activate)
(if (derived-mode-p 'exp-mode)
(indent-region beg end))
)
(defadvice uncomment-region (after indent-after activate)
(if (derived-mode-p 'exp-mode)
(indent-region beg end))
)编辑:按照@Stefan的建议使用derived-mode-p。
https://stackoverflow.com/questions/28220522
复制相似问题