1

最近、nano で簡単な C コーディングを行っているのですが、シンタックス ハイライトの動作がおかしくなっています。私はコマンドラインの経験があまりないので、無意識のうちに何か間違ったことをしているかもしれません。ここで誰かが私に提案をしてくれることを願っています。

nano 2.0.6 に付属のサンプル C シンタックス ファイルをダウンロードし (プリインストールされているバージョンであるため)、1 行をコメント アウトして使用しています。一部は期待どおりに機能しますが、次の行のような重要な部分は機能しません。

color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"

私が判断したのは、int は緑色で強調表示されませんが、緑色で強調表示されるということです。または 、 など。つまり、エスケープされているように見える山括弧 (単語の境界を表す) は、エスケープされていないかのように動作しています。バックスラッシュを削除してnanoを再起動することでこれを確認しました。挙動は変わりませんでした。

正規表現でエスケープされた山括弧を使用する構文定義では、同じ問題が発生します。この問題のグーグル検索は無益であることが判明したため、途方に暮れています。助けていただければ幸いです。

4

2 に答える 2

2

OS X を使用していると思います。これは、Apple が引き続き使用しているバージョンです。(ライセンス上の理由によると思います。) Apple の libc は and をサポートしていない\<よう\>です\b[[:<:]]それらをそれぞれ とに置き換えると[[:>:]]うまくいくはずです。

参照: http://www.regular-expressions.info/wordboundaries.html#posix

于 2013-11-06T07:00:04.280 に答える
1

libc 正規表現の実装に問題があるように聞こえます。または、古い libc に静的にリンクされている可能性がある、かなり古いバージョンの nano を使用している可能性があります。可能であれば、新しいバージョンに更新してみてください。

を使用して と の両方を\b置き換えることもできます。同等である必要があります。\<\>

于 2012-08-27T16:51:28.863 に答える