8

Python を学び始めたばかりで、Emacs をエディターとして使用しています。現在、Emacs は通常の文字列 (一重引用符) と docstring (三重引用符) に同じ色を使用しています。docstring を別の色にしたいので、'Options->Customize Emacs' メニュー オプションを使用して 'font-lock-doc-face' を新しい色に変更し、変更を保存しました。ただし、Emacs は引き続き docstring を通常の文字列と同じ色に保ちます。通常の文字列の色を変更すると、その変更がドキュメント文字列にも適用されます。

Emacs は docstring と通常の文字列を同じものとして扱っているようです。Python docstring を通常の文字列とは別に、Emacs に適切に見つけて色を付ける方法はありますか?

編集: デフォルトの Python モード設定で Emacs 23.1.1 (Kubuntu 10.10 パッケージ) を使用しています。真夜中をテーマにした color-theme パッケージも使用しています。

4

2 に答える 2

2

面白い。emacs の構文テーブルの仕組みにより、emacs は新しい文字列の開始が続く空の文字列を考え、表現すると言いたかったのです。"""'''

次のコードを Python バッファに貼り付けることで、emacs のコピーでこれを簡単に確認できます。

class MrsRobinson(object):
    '''
    What's that you say?
    '''
    pass

emacs 23.1.1 では[更新:そしてどうやら stackoveflow で!]これにより、ファイルの残りの構文の強調表示が完全に壊れます。

私は常に"""docstringのアポストロフィの問題を避けるために特に使用しているので、今分までemacs 23.2.1でこれが最終的に修正されたことに気づきませんでした...

python-quote-syntax(はい、 python.el で呼び出される新しい関数があります)

つまり、お使いのバージョンの emacs では、文字列が正しく解析されないため、これは不可能です。最新の emacs にアップグレードする場合は、python.el でその関数を変更して別の方法で処理することで実現できる場合があります。

于 2011-02-27T03:53:50.857 に答える