.nanorc
以下のテキストに示すように、構文の強調を設定できるかどうか、誰かが教えてくれるかどうか疑問に思います。
Dim s$ = "foo ' bar" ' bar "foo"
...文字列は"foo 'bar"
すべて1色で強調表示され、次のコメントは' bar "foo"
別の色で強調表示されます。
私がこうすれば:
# Comments.
color yellow "'.*"
# Strings
color brightmagenta ""(\\.|[^"])*""
それから私はこれを得ます:
別の順序で行う:
# Strings
color brightmagenta ""(\\.|[^"])*""
# Comments.
color yellow "'.*"
それから私はこれを得ます:
答え1
コメントに次の内容がある場合いいえが含まれています'
。つまり最後 '
その行がコメントの先頭であれば、最もうまくいくようです。戻る行の終わりから非欲張り検索が実行されます。
文字列用語を使用しますが、他のコメント用語を使用する方法を試してください。
# Strings
color brightmagenta ""(\\.|[^"])*""
# Comments.
color green "[^']*$"
これはうまくいきます。とは別に残念ながら、コメントマーク('
)には色はありません。
次のように追加します'
。
# Strings
color brightmagenta ""(\\.|[^"])*""
# Comments.
color green "'[^']*$"
ついに希望の結果を得ました。
注:貪欲ではない代替[^']*
うん'.*?
、私最初以下を参考にしてみましたが失敗しました...
怠惰な(貪欲ではない)*?
エラーが発生します。
.*?
私の最初の考えは使用することでした。会議コメントマーク('
)も次のように色付けされています。
# Comments.
color green "'.*?$"
論理的に、最後から始まる貪欲でない検索は、あなたのコメントにも適用されます。
しかし、nanoではエラーが発生します。
Bad regex "'.*?$": repetition-operator operand invalid
それ可能エラーです。ご覧ください。Mac OSでBrew #41のnano 2.3.6を使用する場合のphp.nanorc、sh.nanorc、およびzsh.nanorcの正規表現エラー修正されたとします。
A:POSIX正規表現はサポートされていませんか?怠惰(または単純な怠惰)によるものです。問題のある行から?を削除するとエラーは削除されますが、他の人の評価が変わるため、ここではそうしたくありません。
注:OS Xでnanoを実行すると、このエラーが発生しました。これが関連しているかどうかはわかりません。