2

Emacsをevil-modeで使用すると、次\_のような正規表現で問題が発生します

/TAG1\_.\{-}TAG2
/TAG1\_s*TAG2

たとえば、最初の正規表現は Vim で使用され、空白や改行を含むTAG1との間のテキスト ブロックを検索します。TAG2それは例えば一致します

TAG1
text

more text TAG2

ただし、Emacs の悪モードでは、 と入力するとすぐに\_エラーPremature end of regular expressionメッセージが表示されます。\_を含まないその他の検索

/TAG1\n*TAG2

期待どおりに動作するため、問題は特に にあり\_ます。邪悪なグループの設定で少し遊んでみましたが、役に立ちませんでした。問題がどこにある可能性があるかについてのヒントはありますか?

PS: この問題は、GUI を使用しているかどうかに関係なく発生します。Vimでは何の問題もありません

4

2 に答える 2

1

@Iqbal への返信で言うようにTAG1、 の後に 0 個以上のスペース文字または改行文字が続きTAG2、その後に が続く場合、Emacs ではその正規表現は次のように記述されます TAG1[ \n]*TAG2

はい、マニュアルの正規表現セクションを読むのはあなた自身の責任です。言語が異なれば正規表現の扱いも異なり、Emacs Lisp もその規則の例外ではありません。

于 2014-02-19T03:15:08.687 に答える