Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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中的文本外观:覆盖工作,文本属性不';T_Emacs_Overlays - Fatal编程技术网

更改Emacs中的文本外观:覆盖工作,文本属性不';T

更改Emacs中的文本外观:覆盖工作,文本属性不';T,emacs,overlays,Emacs,Overlays,我今天一直在试验Emacs中的文本属性。如果我将光标放在一行上,上面有一些文本,然后用M-:执行以下代码,该行将以粗体重新显示 (overlay-put (make-overlay (line-beginning-position) (line-end-position)) 'face 'bold) 但是,如果我用(remove overlays)清除覆盖并执行以下代码,则不会发生任何事情(除了minibuffer中出现“nil”一词) 从目前为止我收集到的信息来看,我希望这两个片

我今天一直在试验Emacs中的文本属性。如果我将光标放在一行上,上面有一些文本,然后用
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)