【发布时间】:2011-10-09 22:28:09
【问题描述】:
是否可以选择您正在编辑的一段文本并更改其颜色?我知道可以创建一个颜色主题来为某些类型的文本着色(例如某种编程语言中的着色函数),但是是否可以对特定 emacs 中的选定文本进行一次颜色更改不创建主题的文档?提前致谢。
【问题讨论】:
是否可以选择您正在编辑的一段文本并更改其颜色?我知道可以创建一个颜色主题来为某些类型的文本着色(例如某种编程语言中的着色函数),但是是否可以对特定 emacs 中的选定文本进行一次颜色更改不创建主题的文档?提前致谢。
【问题讨论】:
M-x highlight-phrase 怎么样?
【讨论】:
在任何情况下,主题都不允许您指定任意文本的颜色。它只描述了一组字体锁要使用的面。
要将人脸应用到任意一段文本,选择文本,然后M-: (add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))
有关如何创建人脸,请参阅 elisp 手册的人脸部分。
Emacs 还附带了hi-lock 包,它可以突出显示正则表达式或包含正则表达式的行。见manual
【讨论】:
add-text-properties 不是 interactive 。可能适用于M-: (eval)。
hi-lock。
我知道六年是一段相当长的时间,但我偶然发现了这个问题,经过大量研究后,我没有发现任何东西像我最终为自己挖掘出来的那样客观。
要对缓冲区中的前 200 个字符进行着色,请执行以下命令:
(put-text-property 1 200 'face (cons 'foreground-color "red"))
如果您在 emacs 中执行此命令时需要帮助,这里是众多可能性中的一种:
【讨论】:
你可能想看看enriched-mode。
【讨论】:
如果你在一个不受字体锁定控制的缓冲区中,你可以使用'facemenu'。
例如,突出显示一段文本,然后用鼠标按C-mouse-2。然后,您可以选择一个面(文本属性与名称的某种组合)。您还可以选择随机的前景或背景颜色。
如果你的 Emacs 特别老,我好像记得M-g 上有类似的东西。
【讨论】:
试试set-background-color、set-foreground-color、set-cursor-color。
但是,更改不会与文档一起保存。
注意:
当我尝试这些功能时,除非我通过菜单,否则它们不会设置区域的颜色。
【讨论】:
见http://www.emacswiki.org/emacs/HighlightTemporarily(不一定是临时的)。
您可以通过用鼠标滑动文本或使用正则表达式匹配文本以及其他几种方式来“着色”文本。尤其是库 highlight.el,您可以通过多种方式为文本“着色”。
【讨论】: