Как изменить лицо шрифта Emacs для строк документации Python?
Я только начинаю изучать Python и использую Emacs в качестве моего редактора. В настоящее время Emacs использует один и тот же цвет для обычных строк (одинарные кавычки) и строк документации (тройные кавычки). Я хочу, чтобы строки документации были другого цвета, поэтому я использовал опцию меню "Параметры-> Настроить Emacs", чтобы изменить "font-lock-doc-face" на новый цвет и сохранить изменения. Однако Emacs продолжает сохранять строки документов того же цвета, что и обычные строки. Изменение цвета обычных строк также применяет изменение к строкам документов.
Казалось бы, Emacs рассматривает строки документов и обычные строки как одно и то же. Есть ли способ заставить Emacs правильно найти и раскрасить строки документации Python отдельно от обычных строк?
Изменить: я использую Emacs 23.1.1 (пакет Kubuntu 10.10) с настройками режима Python по умолчанию. Я также использую пакет цветовой темы с темой полуночи.
2 ответа
Интересно. Я собирался сказать, что из-за того, как работает таблица синтаксиса emacs, Emacs считает, """
а также '''
представляет пустую строку, сопровождаемую началом новой строки.
Вы можете легко проверить это в своей копии emacs, вставив следующий код в буфер python:
class MrsRobinson(object):
'''
What's that you say?
'''
pass
В emacs 23.1.1 [ update: и, очевидно, в stackoveflow!] Это полностью нарушает подсветку синтаксиса для остальной части файла.
Я всегда использую """
специально, чтобы избежать проблем с апострофом в строках документации, поэтому я не заметил до этого момента, что в emacs 23.2.1 это как-то окончательно исправлено...
(Да, есть новая функция под названием python-quote-syntax
в python.el)
Итак: в вашей версии emacs это невозможно, потому что строки не анализируются правильно. Если вы обновитесь до последних версий emacs, вы сможете сделать это, изменив эту функцию в python.el, чтобы по-разному относиться к ним.
Мне удалось это сделать:
При выполнении
M-x customize-face
и введите:.
Причина, по которой они оба одного цвета, заключается в том, что
font-lock-doc-face
наследуется от:
Я обновил
font-lock-string-face
к
font-lock-comment-face
(поскольку я предпочитаю, чтобы мои строки документов были того же цвета, что и мои комментарии). Вы можете сделать то же самое или выбрать «Показать все атрибуты», чтобы выбрать свои.