我想isearch/search-replace /仅在代码中出现(不在注释或字符串中)。在Emacs中如何仅在代码区域进行操作(即搜索)?
这一定是一个常见问题,那么哪些软件包已经这样做了?
如果现有的软件包没有这样做,我正在考虑一个小模式,其中字符串和注释隐藏的基础上形成将做的伎俩。有一个吗?
我想isearch/search-replace /仅在代码中出现(不在注释或字符串中)。在Emacs中如何仅在代码区域进行操作(即搜索)?
这一定是一个常见问题,那么哪些软件包已经这样做了?
如果现有的软件包没有这样做,我正在考虑一个小模式,其中字符串和注释隐藏的基础上形成将做的伎俩。有一个吗?
Icicles search给你几种方法来做到这一点。这里有两个:
搜索 “东西”(例如defun
S,sexp
S,XML元素等),忽略评论(选项icicle-ignore-comments-flag
)。也就是说,使用选定的代码段作为搜索上下文,但忽略注释中的代码或代码中的任何注释。
搜索评论的complement。例如,将搜索上下文定义为与面font-lock-comment-face
或面font-lock-comment-delimiter-face
(这意味着搜索评论之外的所有代码)字体锁定的文本区的补充。
定义搜索上下文后,只需键入文本以增量筛选上下文。并且您可以按照需求任意匹配replace。
Isearch+按照你的要求做(如同Icicles ---见上面的other answer)。
您可以定义上下文是ISEARCH搜索,使用任何以下的:
THING
(SEXP,defun定义,列表中的文本区,字符串,评论等)---搜索上下文是给定THING
类型的文本区域。已经定义的搜索环境中,你也可以搜索补充:在非 -contexts。您可以在Isearch中随时使用C-M-~
在搜索上下文和非上下文之间切换。
搜索时,默认情况下未搜索的区域会略微变暗,以使可搜索区域脱颖而出。与ISEARCH
对于上下文搜索你需要这两个库:
除了这里给出的文件,在哪里加载整个冰柱的东西?只能看到https://github.com/emacsmirror/icicles/archive/master.zip –
@AndreasRöhler:有很多方法可以下载冰柱。他们在这里被描述(http://www.emacswiki.org/emacs/Icicles_-_Libraries)。例如,您可以从[MELPA](http://melpa.milkbox.net/)获取冰柱。 (但要清楚的是,这里提到的Isearch +文件独立于冰柱。) – Drew
[这里有一个相关的讨论(http://thread.gmane.org/gmane .emacs.devel/129755)在emacs-devel上。显然问题是你可以隐藏这些部分,但替换不会考虑它,并在隐藏部分也做它的事情。 – Tom
也在这里:http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/757fb08373f9fbf8 –