私はisearch/search-replace /をコード(コメントや文字列にはありません)でのみ表示したいと思います。Emacsでは、コード領域での操作(つまり検索)方法は?
これは一般的な問題であるに違いないので、これはどのパッケージで既に行われていますか?
これを行う既存のパッケージがない場合、私は、文字化けに基づいて文字列とコメントが隠されているマイナーモードを考えています。 1つはありますか?
私はisearch/search-replace /をコード(コメントや文字列にはありません)でのみ表示したいと思います。Emacsでは、コード領域での操作(つまり検索)方法は?
これは一般的な問題であるに違いないので、これはどのパッケージで既に行われていますか?
これを行う既存のパッケージがない場合、私は、文字化けに基づいて文字列とコメントが隠されているマイナーモードを考えています。 1つはありますか?
はい、あなたは正しいです。 HideShowマイナーモードでは、テキストのブロック、特に複数行のコメントを非表示にすることができます。
hide/showコメントは標準パッケージに含まれていませんが、wikiページにはそのトリックを行うコードがあります。
次にisearchコマンドでは、非表示のコメントは考慮されません。
HOWEVER:replaceは隠しブロックを含むバッファ全体で動作します。
emacs 23.2で試してみましたが、いくつかのJavaコードを隠し、検索置換すると隠しブロックの内容が変更されました。まあ、それは本当に質問への答えではありません。 – Tom
はい、置換はバッファ全体で動作します。しかし、isearchは隠しブロックを見ない –
Icicles searchには、これを行う方法がいくつかあります。
検索 "もの"(例えばdefun
秒、sexp
S、XML要素など)コメント(オプションicicle-ignore-comments-flag
)を無視して、:ここでは、2つがあります。つまり、選択したコードセグメントを検索コンテキストとして使用しますが、コード内のコメントやコメント内のコードは無視します。
コメントのcomplementを検索してください。たとえば、検索コンテキストを、顔のいずれか(font-lock-comment-face
またはfont-lock-comment-delimiter-face
)でフォントロックされたテキストの補完として定義します(つまり、コメント外のすべてのコードを検索することを意味します)。
検索コンテキストを定義したら、テキストを入力してコンテキストを段階的にフィルタリングしてください。そして、あなたはreplaceをオンデマンドで試合できます。
あなたが尋ねることは(Icicles ---上記のother answerを参照)と同じです。
は、次のいずれかを使用して、そのインクリメンタルサーチで検索コンテキストを定義することができます。
THING
(S式、関数定義、リストを持っているテキストゾーンがあり、文字列、コメントなど)---検索コンテキストは、指定されたTHING
タイプのテキストゾーンです。 非 -contexts: はあなたにも補数を検索することができ、検索コンテキストを定義しました。C-M-~
を使用して、Isearchでいつでもコンテキストと非コンテキストを検索することができます。
検索時には、デフォルトでは、検索可能な領域が目立たないように、検索されていない領域がわずかに薄暗くなります。コンテキスト検索インクリメンタルサーチでは、これらの2つのライブラリ必要があるために
:
ここに示したファイルの横に、icicle-stuff全体をロードする場所はありますか? https://github.com/emacsmirror/icicles/archive/master.zip –
@AndreasRöhler:iciclesをダウンロードする方法はたくさんあります。それらは[こちら](http://www.emacswiki.org/emacs/Icicles_-_Libraries)に記載されています。たとえば、[MELPA](http://melpa.milkbox.net/)からIciclesを入手することができます。 (ただし、ここで述べたIsearch +ファイルは、Iciclesとは独立しています。 – Drew
を[ここで、関連する議論だ](http://thread.gmane.org/gmane .emacs.devel/129755)のemacs-develにあります。どうやら、問題はあなたがそれらの部分を隠すことができるということですが、置き換えることはそれを考慮に入れず、隠された部分でもそのことを行います。 – Tom
またこちら:http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/757fb08373f9fbf8 –