4

Emacs での正規表現検索/置換の一致と効果の両方を動的にプレビューするパッケージ (またはフリー フローティング elisp) はありますか? いくつかの特殊なモードがこのようなものを提供していると思いますが、普遍的な解決策を見つけることができませんでした.

私は regexp-builder に精通していることに注意する必要がありますが、これは一致をプレビューするだけで、バッファ間で文字列をコピーする必要があり、完全な解決策ではありません。

4

2 に答える 2

6

visual-regexpを使用すると、置換をインラインでプレビューできます。

ここに画像の説明を入力

于 2016-06-29T21:36:29.510 に答える
4

「一致をプレビュー」する 1 つの方法は、isearch-forward-regexp( ) を介して正規表現を入力することです。これは、正規表現を記述するときに対話的に一致を強調表示し、(つまり、通常のバインド)でC-M-s呼び出します。isearch-query-replace-regexpC-M-%query-replace-regexp

(表示されている部分だけではなく) バッファー全体の一致を確認するM-soには、isearch regexp を入力しながら入力して実行しますisearch-occur。ミニバッファーは選択されたままなので、正規表現の編集を続けることができます。

代替品の「プレビュー」についてはわかりません。ほとんどの人は単に置換を行い、それが間違いだった場合は元に戻すのではないでしょうか? (そして、それとプレビュー機能の間に大きな違いがあるかどうかはわかりません)。

編集: バッファは、ある種の「置換プレビュー」オプションを容易にすると思います。occur発生バッファに制限されていますが、それで十分かもしれません。

Emacs 24 にはかなり便利な機能があります。発生バッファーにoccur-edit-mode入力eすると、一致したものをテキストとして編集できます (そのバッファーで検索と置換を実行できます)。オカレンス バッファーを編集した後、入力C-cC-cして変更を元のバッファーに書き戻します。ただし、それを行うまでは、変更を確認した場合に何が起こるかのプレビューとして、変更は発生バッファー自体にのみ存在します。

現状では、この回答の元の部分とスムーズに結合することはできませんが、言及する価値があるように思われました.

編集 2:オーケー、以前の編集は嘘でした。または、少なくとも私が書いたものに対して十分に一貫性がありません。オカレンス編集モードでは、元のバッファーにすぐに変更が加えられないと思っていましたが、そうである場合もありますが、ほとんどの場合、オカレンス バッファーと同時に元のバッファーが更新されます。一貫性がない理由はわかりませんが、私が提案したように、プレビューとして扱うことはできません。

于 2012-11-21T02:13:52.927 に答える