更改Emacs中的文本外观:覆盖工作,文本属性不';T
我今天一直在试验Emacs中的文本属性。如果我将光标放在一行上,上面有一些文本,然后用更改Emacs中的文本外观:覆盖工作,文本属性不';T,emacs,overlays,Emacs,Overlays,我今天一直在试验Emacs中的文本属性。如果我将光标放在一行上,上面有一些文本,然后用M-:执行以下代码,该行将以粗体重新显示 (overlay-put (make-overlay (line-beginning-position) (line-end-position)) 'face 'bold) 但是,如果我用(remove overlays)清除覆盖并执行以下代码,则不会发生任何事情(除了minibuffer中出现“nil”一词) 从目前为止我收集到的信息来看,我希望这两个片
M-:
执行以下代码,该行将以粗体重新显示
(overlay-put
(make-overlay
(line-beginning-position)
(line-end-position))
'face 'bold)
但是,如果我用(remove overlays)
清除覆盖并执行以下代码,则不会发生任何事情(除了minibuffer中出现“nil”一词)
从目前为止我收集到的信息来看,我希望这两个片段能够产生相同的视觉效果。为什么不呢?当
字体锁定模式
打开时,面部
属性将被覆盖。请尝试使用字体锁定面
:
(put-text-property
(line-beginning-position)
(line-end-position)
'font-lock-face 'bold)
(放置文本属性)
(行起始位置)
(线路末端位置)
“字体锁定面”粗体)
ansi-color.el--“然而,在Emacs中,情况有点复杂
不同:当字体锁定在缓冲区中处于活动状态时,不能简单地添加
缓冲区中的面文本属性。字体锁定将删除面
使用“字体锁定非内容化区域函数”的文本属性。如果需要
要将“ansi color apply”返回的字符串插入此类缓冲区,
必须将“字体锁定取消内容区域功能”设置为
`ansi color UNFUNTIFY region'。此函数不会删除所有面
文本属性。它将保留面文本属性
如果设置了属性“ansi color”。适用于Emacs 23.1,缓冲区中的文本同时处于基本模式和文本模式。22.1.50不是正式版本,我会尝试从下载并安装的正式版本中获取正式版本,同样的问题也发生了。但我偶然发现了答案。我打开了一个新的空版本y缓冲区并键入一些随机乱码,设置文本属性在那里起作用。我尝试了所有实验的缓冲区最初是在xml模式(或sgml模式,无论什么)下。因此,至少我现在可以应用文本属性,但对于我来说,某些模式如何(以及为什么)取消put文本属性仍然是一个谜。 (put-text-property (line-beginning-position) (line-end-position) 'font-lock-face 'bold)