我想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 –