Изменение цвета определенного фрагмента текста в emacs без создания темы - PullRequest
6 голосов
/ 10 октября 2011

Можно ли выбрать редактируемый фрагмент текста и изменить его цвет? Я знаю, что можно создать цветовую тему, которая будет окрашивать определенные виды текста (например, функции окраски на определенном языке программирования), но возможно ли сделать одноразовое изменение цвета для выбранного фрагмента текста в конкретном emacs документ без создания темы? заранее спасибо.

Ответы [ 7 ]

6 голосов
/ 10 октября 2011

Тема ни в коем случае не позволяет указывать цвет произвольного текста.Он описывает только набор граней, которые будут использоваться font-lock.

Чтобы применить грань к произвольному фрагменту текста, выберите текст , затем M -: (add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))

Смотрите раздел лиц в руководстве elisp о том, как создать лицо.

Emacs также поставляется с пакетом hi-lock, который может выделять регулярные выражения или строки, содержащие регулярные выражения,См. руководство

5 голосов
/ 10 октября 2011

как насчет M-x highlight-phrase?

2 голосов
/ 10 октября 2011

Возможно, вы захотите взглянуть на расширенный режим .

1 голос
/ 10 октября 2011

Если вы находитесь в буфере, который не контролируется с помощью font-lock, вы можете использовать 'facemenu'.

Например, выделите немного текста, затем с помощью мыши нажмите C-mouse-2,Затем вы можете выбрать лицо (некоторая комбинация текстовых свойств с именем).Вы также можете выбрать случайные цвета фона или фона.

Если вы, Emacs, особенно старый, мне кажется, что-то похожее на M-g.

0 голосов
/ 10 октября 2017

Я знаю, что шесть лет - это довольно много, но я наткнулся на этот вопрос, и после долгих исследований я не нашел ничего более объективного, чем то, что я в конечном итоге откопал для себя.

Чтобы раскрасить, скажем, первые 200 символов в вашем буфере, выполните команду:

(put-text-property 1 200 'face (cons 'foreground-color "red"))

Если вам нужна помощь в выполнении этой команды в emacs, есть одна возможность из многих:

  1. Введите ESC-x eval-expression.
  2. Введите или вставьте указанную выше команду в мини-буфер после приглашения.
  3. Нажмите клавишу ВВОД.
0 голосов
/ 11 октября 2011

См. http://www.emacswiki.org/emacs/HighlightTemporarily (и это не обязательно должно быть временным).

Вы можете «раскрасить» текст, проводя его с помощью мыши или сопоставляя его с регулярным выражением, и несколькими другими способами. Библиотека highlight.el, в частности, позволяет «раскрашивать» текст разными способами.

0 голосов
/ 10 октября 2011

Попробуйте set-background-color, set-foreground-color, set-cursor-color.
Изменения не будут сохранены вместе с документом.

Примечание:
Когда я пробую эти функции, они не устанавливают цвет региона, если я не перехожу через меню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...