【问题标题】:Changing the color of a specific piece of text in emacs without creating a theme在不创建主题的情况下更改 emacs 中特定文本的颜色
【发布时间】:2011-10-09 22:28:09
【问题描述】:

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

【问题讨论】:

    标签: emacs terminal


    【解决方案1】:

    M-x highlight-phrase 怎么样?

    【讨论】:

    • 我本打算接受,但意识到这在技术上只是改变了文本的背景颜色,而不是文本本身。也许没有办法快速轻松地做到这一点?
    【解决方案2】:

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

    要将人脸应用到任意一段文本,选择文本,然后M-: (add-text-properties (region-beginning) (region-end) '(face font-lock-warning-face))

    有关如何创建人脸,请参阅 elisp 手册的人脸部分。

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

    【讨论】:

    • 我很确定这是行不通的,因为 add-text-properties 不是 interactive 。可能适用于M-: (eval)。
    • 选择文字是指在文字的开头设置一个标记,然后将光标移动到所选内容的末尾吗?
    • @user534398 这确实是他的意思。不过,您可能需要阅读手册的部分内容,因为这会限制您获得的面孔。
    • @CharlieMartin 是的,当然,M-:。我只是假设他真的想要hi-lock
    • 好吧,我一直在尝试很多东西并越来越接近我的解决方案。最终,我仍然对emacs非常缺乏经验。我有一个非常新手的问题是: M-: 代表什么?我知道 M-x 代表按住元键并按 x,但我对 M-: 以及这意味着什么感到困惑。我试着按住元键并输入一个冒号,但我收到了这条消息:“No comment syntax defined use:”和一个提示。有人可以解释一下吗?非常感谢!
    【解决方案3】:

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

    要对缓冲区中的前 200 个字符进行着色,请执行以下命令:

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

    如果您在 emacs 中执行此命令时需要帮助,这里是众多可能性中的一种:

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

    【讨论】:

    • 如果这不起作用,请尝试 M-x font-lock-mode RET 禁用(切换)字体锁定模式,启用时会破坏所有颜色和面孔。此外, (cons 'foreground-color "red") 已弃用,取而代之的是 (list :foreground "red") 允许,例如, (list :foreground "red" :background "orange" :slant 'italic)
    【解决方案4】:

    你可能想看看enriched-mode

    【讨论】:

      【解决方案5】:

      如果你在一个不受字体锁定控制的缓冲区中,你可以使用'facemenu'。

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

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

      【讨论】:

      • C-mouse-2 允许我更改前景色,但只是暂时的。一旦我退出 emacs,前景色的变化就会丢失。我怀疑这是意料之中的,因为文件中没有添加任何内容来“保存”前景色的变化。
      【解决方案6】:

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

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

      【讨论】:

      • 我能够让它工作,但仅限于整个文档。也许我没有成功选择一个地区?我尝试在要编辑的区域的开头设置一个标记,然后将光标移动到我想要的区域的末尾,但他没有用。也没有用鼠标突出显示。对此有什么建议吗?同样不幸的是,这似乎不是永久性的,所以这是另一个问题
      【解决方案7】:

      http://www.emacswiki.org/emacs/HighlightTemporarily(不一定是临时的)。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-20
        • 2014-06-16
        • 2016-05-13
        • 1970-01-01
        相关资源
        最近更新 更多