2011-02-01 17 views
0

豚など/ *はブロックコメントを開始します。これを正規表現の文字列 'blah/blah/*'に入れると、emacsはこれがブロックコメントであり、構文の強調表示が地獄に向かうと考えます。私はelispに精通していませんが、私はそれが豚の注釈を提供しているスクリプトの問題だと確信しています。文字列内のコメントトークン

どうすれば修正できますか?

+0

私が使っているEmacs(Debianのテストでは23.2.1)は、フリースタンディングのコメントと文字列の中のコメントを区別することができます。おそらく、あなたはあなたの.emacsにこの動作を引き起こす何かがありますか?あるいは、どのバージョンのEmacsとどのOSを使用していますか? – vpit3833

+0

RHELとemacs-23.2.1 –

+0

http://sourceforge.net/projects/pig-mode/を使用していますか? – phils

答えて

2

PHILSは、質問のコメントに良く設計されたメジャーモードを指摘し、あなたはまだあるので、好奇心:使用している豚モードのバージョンに正しい構文テーブルが設定されていません。 Emacsがコメントと文字列を認識する最も信頼できる方法は、構文テーブルを使用して文字をコメントと文字列の開始/終了にマッピングすることです。あなたが使用しているバージョンがフォントロックでそれをしようとしています。

+0

私はこれをhttp://xahlee.org/emacs/elisp_syntax_coloring.htmlで追跡することができました。今私はそれを得る。 –

0

\ 'esと*をエスケープする必要があります。正規表現エンジンで使用されるすべての文字をエスケープする必要があります。

"\"と一致させたい場合は、replace-regexpを対話的に使用する場合は "\\"を、リスプ機能として使用する場合は "\\\\"を記述する必要があります。

(私もこのコメントに私のエスケープをエスケープする必要があり、その8つのエスケープは上記の最後のエスケープシーケンスである)

+0

ああ..これは正規表現とは関係ありません。正規表現内のワイルドカードが構文の強調表示の原因を混乱させている//*ブロックのコメントを開始します。 –

+0

ええ、申し訳ありませんが、私は今それを実現します。ありがとう。 – klang

関連する問題