Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不创建主题的情况下更改emacs中特定文本的颜色_Emacs_Terminal - Fatal编程技术网

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

在不创建主题的情况下更改emacs中特定文本的颜色,emacs,terminal,Emacs,Terminal,是否可以选择正在编辑的文本并更改其颜色?我知道可以创建一个颜色主题来为特定类型的文本着色(例如,特定编程语言中的着色函数),但是是否可以在不创建主题的情况下对特定emacs文档中选定的文本进行一次性颜色更改?提前感谢。尝试设置背景色,设置前景色,设置光标颜色 但更改不会与文档一起保存 注: 当我尝试这些功能时,除非我浏览菜单,否则它们不会设置区域的颜色。在任何情况下,主题都不允许您指定任意文本的颜色。它仅描述字体锁定所使用的一组面 要将面应用于任意文本,请选择文本,然后选择M-:(添加文本属性(

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

尝试
设置背景色
设置前景色
设置光标颜色

但更改不会与文档一起保存

注:

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

在任何情况下,主题都不允许您指定任意文本的颜色。它仅描述字体锁定所使用的一组面

要将面应用于任意文本,请选择文本,然后选择M-:
(添加文本属性(区域开始)(区域结束);(面字体锁定警告面))

有关如何创建面,请参见elisp手册的“面”部分


Emacs还附带了
hi lock
包,它可以高亮显示regexp或包含regexp的行。请参阅您可能想查看的内容。

如果您所在的缓冲区不受字体锁定控制,则可以使用“facemenu”

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


如果您的Emacs特别老,我似乎记得
M-g

上类似的内容,那么
M-x突出显示短语如何?

请参见(它不必是临时的)


您可以通过鼠标滑动文本,或将其与regexp匹配,以及其他几种方式来“着色”文本。尤其是图书馆,它可以让你在很多方面给文本添加颜色。

我知道六年是一段相当长的时间,但我偶然发现了这个问题,经过大量研究,我没有发现任何东西比我最终为自己挖掘的东西更客观

要更改缓冲区中的前200个字符的颜色,请执行以下命令:

(put-text-property 1 200 'face (cons 'foreground-color "red"))
如果您需要在emacs中执行此命令的帮助,以下是多种可能性中的一种:

  • 键入ESC-x eval表达式
  • 在提示后的小缓冲区中键入或粘贴上述命令
  • 按回车键

  • 我很确定这不会起作用,因为
    添加文本属性
    不是交互式的。可能与
    M-:
    eval
    )一起使用。选择文本,您的意思是在文本开头设置一个标记,然后将光标移动到选择的末尾吗?@user534398这确实是他的意思。不过,您可能需要仔细阅读手册的这一部分,因为这限制了您得到的面孔。@CharlieMartin是的,当然,M-:。我只是假设他真的想要
    hi lock
    。好吧,我已经尝试了很多东西,并且越来越接近我的解决方案。最终,我对emacs还是非常缺乏经验。我有一个非常初级的问题:M-:代表什么?我知道M-x表示按住meta键并按下x,但我对M-:以及这意味着什么感到困惑。我试着按住meta键并键入冒号,但收到了以下消息:“No comment syntax defined use:”和一个提示。有人能解释一下吗?非常感谢!我能够让它工作,但只适用于整个文档。也许我没有成功地选择一个地区?我试着在我想要编辑的区域的开始处设置一个标记,然后将光标移动到我想要编辑的区域的末尾,但是没有成功。也没有用鼠标突出显示。有什么建议吗?不幸的是,这似乎不是永久性的,所以这是我要接受的另一个问题,但我意识到这在技术上只是改变了文本的背景颜色,而不是文本本身。也许没有一种方法可以快速轻松地完成这项工作?C-mouse-2允许我改变前景色,但只是暂时的。一旦退出emacs,前景颜色更改将丢失。我怀疑这是预期的,因为没有向文件中添加任何内容来“保存”前景色更改。如果这不起作用,请尝试使用M-x字体锁定模式RET来禁用(切换)字体锁定模式,该模式将在启用时关闭所有颜色和面。此外,(cons的前景色“红色”)也被弃用,取而代之的是(列表:前景色“红色”)。例如,(列表:前景色“红色”:背景“橙色”:倾斜“斜体”)