#emacs #terminal
#emacs #терминал
Вопрос:
Можно ли выбрать фрагмент текста, который вы редактируете, и изменить его цвет? Я знаю, что можно создать цветную тему, которая будет окрашивать определенные виды текста (например, функции раскраски на определенном языке программирования), но возможно ли однократное изменение цвета выделенного фрагмента текста в определенном документе emacs без создания темы? заранее спасибо.
Ответ №1:
Тема в любом случае не позволяет указывать цвет произвольного текста. Он описывает только набор лиц, которые будут использоваться font-lock.
Чтобы применить грань к произвольному фрагменту текста, выделите текст, затем M-: (add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))
См. Раздел faces руководства elisp о том, как создать лицо.
Emacs также поставляется с hi-lock
пакетом, который может выделять регулярные выражения или строки, содержащие регулярные выражения. См. Руководство
Комментарии:
1. Я почти уверен, что это не сработает, поскольку
add-text-properties
это неinteractive
так. Может работать сM-:
(eval
) .2. Под выделением текста вы подразумеваете установку метки в начале текста, а затем перемещение курсора в конец выделения?
3. @user534398 это действительно то, что он имеет в виду. Возможно, вы захотите ознакомиться с разделом руководства, поскольку это ограничивает то, какое лицо вы получаете.
4. @CharlieMartin да, конечно, M-:. Я просто предположил, что он действительно хочет
hi-lock
в любом случае.5. Хорошо, я пробовал много вещей и приближался к своему решению. В конечном счете, я все еще очень неопытен в emacs. У меня есть очень начинающий вопрос: что представляет M-:? Я знаю, что M-x представляет собой удержание клавиши meta и нажатие x, но меня смущает M-: и что это значит. Я попытался, удерживая клавишу meta, ввести двоеточие, но получил следующее сообщение: «Синтаксис комментариев не определен, используйте:» и приглашение. Кто-нибудь может это объяснить? Большое спасибо!
Ответ №2:
как насчет M-x highlight-phrase
?
Комментарии:
1. Я собирался согласиться, но понял, что технически это просто изменяет цвет фона текста, а не сам текст. Возможно, нет способа сделать это быстро и легко?
Ответ №3:
Я знаю, что шесть лет — довольно долгий срок, но я наткнулся на этот вопрос и после долгих исследований не нашел ничего более объективного, чем то, что я в конечном итоге откопал для себя.
Чтобы раскрасить, скажем, первые 200 символов в вашем буфере, выполните команду:
(put-text-property 1 200 'face (cons 'foreground-color "red"))
Если вам нужна помощь в выполнении этой команды в emacs, вот одна из многих возможностей:
- Введите ESC-x eval-expression .
- Введите или вставьте приведенную выше команду в мини-буфер после приглашения.
- Нажмите ENTER.
Комментарии:
1. Если это не сработает, попробуйте M-x font-lock-mode RET, чтобы отключить (переключить) режим блокировки шрифта, который при включении блокирует все цвета и грани. Кроме того, (cons ‘foreground-color «red») устарел в пользу (список: передний план «красный»), который позволяет, например, (список: передний план «красный»: фон «оранжевый» : наклонный курсив)
Ответ №4:
Возможно, вам захочется взглянуть на обогащенный режим.
Ответ №5:
Если вы находитесь в буфере, который не контролируется блокировкой шрифтов, вы можете использовать facemenu.
Например, выделите фрагмент текста, затем с помощью мыши нажмите C-mouse-2
. Затем вы можете выбрать лицо (некоторую комбинацию свойств текста с именем). Вы также можете выбрать случайные цвета фона или фона.
Если ваш Emacs особенно старый, я, кажется, помню что-то подобное M-g
.
Комментарии:
1. C-mouse-2 позволяет мне изменять цвет переднего плана, но только временно. Как только я выхожу из emacs, изменение цвета переднего плана теряется. Я подозреваю, что это ожидаемо, поскольку в файл ничего не добавляется для «сохранения» изменения цвета переднего плана.
Ответ №6:
Попробуйте set-background-color
, set-foreground-color
, set-cursor-color
.
Однако изменения не будут сохранены вместе с документом.
Примечание:
Когда я пытаюсь использовать эти функции, они не задают цвет региона, если я не просматриваю меню.
Комментарии:
1. Я смог заставить это работать, но только для всего документа. Может быть, я неправильно выбираю регион? Я попытался установить метку в начале области, которую я хочу отредактировать, а затем переместить курсор в конец нужной мне области, но у него ничего не получилось. Выделение мышью также не выполнялось. Какие-либо советы по этому поводу? Также, к сожалению, кажется, что это не навсегда, так что это еще одна проблема
Ответ №7:
См. http://www.emacswiki.org/emacs/HighlightTemporarily (и это не обязательно должно быть временным).
Вы можете «раскрасить» текст, проведя по нему мышью или сопоставив его с регулярным выражением, а также несколькими другими способами. Библиотека highlight.el
, в частности, позволяет «раскрашивать» текст разными способами.