在不创建主题的情况下更改emacs中特定文本的颜色

时间:2011-10-09 22:28:09

标签: emacs terminal

是否可以选择正在编辑的文本并更改其颜色?我知道可以创建一个颜色主题来为某些类型的文本着色(例如某种编程语言中的着色函数),但是可以对特定emacs中的选定文本进行一次颜色更改文档没有创建主题?提前谢谢。

7 个答案:

答案 0 :(得分:6)

主题不允许您在任何情况下指定任意文本的颜色。它只描述了font-lock使用的一组面。

要将面部应用于任意一段文字,选择文字,然后 M - : (add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))

请参阅elisp手册中有关如何创建面部的面部分。

Emacs还附带hi-lock包,它可以突出显示正则表达式或包含正则表达式的行。见manual

答案 1 :(得分:5)

M-x highlight-phrase怎么样?

答案 2 :(得分:2)

您可能希望查看enriched-mode

答案 3 :(得分:1)

如果您所在的缓冲区不受font-lock控制,则可以使用'facemenu'。

例如,突出显示一些文字,然后使用鼠标,按C-mouse-2。然后,您可以选择一个面(文本属性的某些组合与名称)。您还可以随机选择背景颜色或背景颜色。

如果你的Emacs特别老,我似乎记得在M-g上有类似的东西。

答案 4 :(得分:0)

尝试set-background-colorset-foreground-colorset-cursor-color 但是,更改不会与文档一起保存。

注意:
当我尝试这些功能时,除非我浏览菜单,否则它们不会设置区域的颜色。

答案 5 :(得分:0)

请参阅http://www.emacswiki.org/emacs/HighlightTemporarily(并且不一定是临时的)。

您可以通过使用鼠标滑动文本或将其与正则表达式匹配以及其他几种方式来“着色”文本。特别是,库highlight.el允许您以多种方式“着色”文本。

答案 6 :(得分:0)

我知道六年是相当长的一段时间,但我偶然发现了这个问题,经过大量的研究,我没有发现任何与我最终为自己挖出的东西差不多的目标。

要说明缓冲区中的前200个字符,请执行以下命令:

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

如果您需要在emacs中执行此命令的帮助,以下是其中一种可能性:

  1. 键入ESC-x eval-expression。
  2. 在提示符后在迷你缓冲区中输入或粘贴上述命令。
  3. 按ENTER键。