首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs:只为init.el中给定的主要模式加载包

Emacs:只为init.el中给定的主要模式加载包
EN

Stack Overflow用户
提问于 2015-01-29 17:08:36
回答 1查看 109关注 0票数 0

不久前,我为一些具有特定格式的文件创建了一个.el文件(epx.el)。我通过init.el通过(require 'epx)加载它。

问题是,在这个epx.el中,有:

代码语言:javascript
复制
(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的主要模式下起作用呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 20:09:40

您可以检查当前缓冲区的主要模式,只有在它是exp-mode时才能采取行动

代码语言:javascript
复制
(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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28220522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档