Раскрасить фрагменты текста в Emacs - PullRequest
4 голосов
/ 31 января 2010

Предположим, у меня есть несколько слов, которые я хотел бы выделить, поэтому я хочу изменить цвет этих нескольких слов, скажем, только на зеленый.

Есть ли простой способ сделать это в emacs?

Спасибо.

Ответы [ 6 ]

3 голосов
/ 04 февраля 2010

Пакет выделения имеет hlt-highlight-regexp-region и hlt-highlight-regexp-to-end, которые делают именно то, что вы хотите.

http://www.emacswiki.org/cgi-bin/wiki/highlight.el

3 голосов
/ 31 января 2010

Это то, что я сделал, используя font-lock-add-keywords. Я хотел выделить слова TODO:, HACK: и FIXME: в моем коде.

(defface todo-face
'((t ()))
"Face for highlighting comments like TODO: and HACK:")

(set-face-background 'todo-face cyan-name)

;; Add keywords we want highlighted
(defun add-todo-to-current-mode ()
    (font-lock-add-keywords nil
       '(("\\(TODO\\|HACK\\|FIXME\\):" 1 'todo-face prepend))
       t))
2 голосов
/ 22 августа 2011

Использовать библиотеку HighLight . Вы можете использовать наложения или текстовые свойства. Вы можете сохранить выделение навсегда или оставить его временным. Вы можете выделить разными способами (регулярное выражение, перетаскивание мышью, ...). Много возможностей.

1 голос
/ 31 января 2010

Если вы хотите, чтобы они были выделены только временно, я нахожу команду M-x highlight-regexp очень полезной, особенно это полезно для просмотра журнальных файлов. Например, вы создали класс журналирования, который выводит некоторую информацию трассировки, такую ​​как MyClass::function() >, когда функция запускается, и MyClass::function() <, когда она закрывается (иногда это может быть особенно полезно при отладке проблем с многопоточностью), тогда вы просто просите emacs выделить некоторые из них зеленым и другие красные, а затем вы можете увидеть, как прошло выполнение.

1 голос
/ 31 января 2010

Используйте функцию font-lock-add-keywords, чтобы определить новый сопоставитель для рассматриваемой строки, привязав этот сопоставитель к некоторому лицу , которое вы определили , которое будет отображаться зеленым цветом.Например:

(font-lock-add-keywords nil
  '("\\<foo\\>" 0 my-green-face))

Обратите внимание, что вы можете указать конкретный режим , где я написал nil выше, и соответствующие формы могут принимать любой из шести различных стилей.См. документацию для переменной font-lock-keywords для правил и несколько примеров.

0 голосов
/ 31 января 2010

Я использую то, что предложил Дмитрий. В частности, у меня есть следующие две строки в моем .emacs

(global-hi-lock-mode t)
(global-set-key (kbd "C-M-h") 'highlight-regexp)

Каждый раз, когда мне нужно выделить определенное слово (или регулярное выражение) в буфере, я нажимаю «CMh», после чего запрашивается слово (или регулярное выражение), которое я хочу отобразить по-другому, а затем - лицо отобразить в.

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