代码之家  ›  专栏  ›  技术社区  ›  Sean

更改Emacs中的文本外观:套印格式有效,文本属性无效

  •  8
  • Sean  · 技术社区  · 16 年前

    我今天一直在emacs中尝试文本属性。如果我把光标放在一行上,上面有一些文本,然后用 M-: ,将以粗体重新显示该行。

    (overlay-put
     (make-overlay
      (line-beginning-position)
      (line-end-position))
     'face 'bold)
    

    但是,如果我用 (remove-overlays) 执行下面的代码,什么也不会发生(除了单词“nil”出现在minibuffer中)。

    (put-text-property
     (line-beginning-position)
     (line-end-position)
     'face 'bold)
    

    从我目前收集到的信息来看,我希望这两个片段能够产生相同的视觉效果。为什么不呢?

    2 回复  |  直到 15 年前
        1
  •  4
  •   huaiyuan    16 年前

    什么时候? font-lock-mode 是在 face 属性将被重写。尝试 font-lock-face 而是:

    (put-text-property
     (line-beginning-position)
     (line-end-position)
     'font-lock-face 'bold)
    
        2
  •  2
  •   Chris    15 年前

    ansi-color.el--“然而,在emacs中,事情有点 不同:当字体锁定在缓冲区中处于活动状态时,不能简单地添加 面向缓冲区的文本属性。字体锁定将删除面 使用“字体锁定取消区域功能”的文本属性。如果你想要 要将“ansi color apply”返回的字符串插入此类缓冲区, 必须将“字体锁定取消区域功能”设置为 ` ANSI颜色非内容区域'。此功能不会删除所有面 文本属性无条件。它将保留面文本属性 如果设置了属性“ansi color”。