Questions tagged «text-properties»

2
叠加层有什么作用,它们与文本属性有何不同?
在手动状态: 为了呈现功能,您可以使用覆盖来更改缓冲区文本在屏幕上的外观。 从名称上看,它暗示可以用来在现有文本上创建“图层”,但是上面的描述似乎表明它改变了文本的外观,感觉与文本属性非常相似。 覆盖层的具体用途是什么?他们提供哪些文本属性不提供的功能?可以使用它们在缓冲区(如弹出窗口,信息框等)中的文本上写文本吗?

1
如何从字符串中删除装饰(文本属性)?
所谓的“装饰字符串”,是指 #("foo" 0 4 (fontified t face font-lock-function-name-face)) ...与“普通字符串”相对 "foo" (如果Elisp代码直接从缓冲区读取字符串,则可以这样修饰它。) 将装饰后的字符串转换为普通字符串的最简单方法是什么(通过剥离所有装饰)?

2
我可以在Modeline打火机中使用图像吗?
我的模型太混乱了。我可以显示图片而不显示模式名称吗? 我可以使用unicode表情符号(例如🐍表示Python或🐓表示Coq),但是使用Emacs配置的某些计算机没有预先安装正确的字体(理想情况下,我也想在我正在编写的模式,因此我不能期望用户使用正确的字体设置)。 我尝试将:image显示属性添加到玩具次要模式的Modeline打火机中,但是在Modeline中什么也没出现: (define-minor-mode my/test-mode "Test mode." :lighter (propertize " 🐓" 'display '(image :type imagemagick :file "/home/clement/.emacs.d/rooster.png")))

5
毫不干扰地改变文本呈现的方法?
我正在编写用于语音识别的emacs扩展,并且正在寻求有关特定功能的帮助。语音识别器(Dragon)的某些单词识别能力始终很差-训练了几次并不重要,这只会使您无法识别某些单词。通常,在同一时间写主题或编码时,一遍又一遍地使用很多相同的单词。 因此,我编写了一种使用覆盖层来更改单词在缓冲区中的呈现方式的模式。它在单词中使用随机字母,在其下方用随机颜色加下划线,并在其顶部放置随机变音标记(重音符号,变音符号等)。这是屏幕截图(您可能需要缩放以查看标记/下划线): 然后您可以说“紫色p头发”,它将在单词“ a”下寻找带有紫色下划线的单词,并带有一个变音符,看起来像头发,然后为您键入该单词。因此,在上面的屏幕截图中,这将导致emacs为您键入“ regexp-quote”。 这个想法是让您使用识别器一贯擅长识别的有限词组来引用屏幕上已经使用过的任何词组。 它工作得很好,只是偶尔会发生碰撞。为了做到这一点,我可以学习一致地引用单词,就像我使用单词的md5哈希中的字节一样,而不是(random)让算法分配更改以免发生冲突。我只发现了6种易于区分的颜色(当下划线只有一个字符宽且只有一个像素厚时很难做到)和3种易于区分的变音符号(易于区分彼此,并且与上面的下划线也不能混淆线或与下划线重叠的位置),请参见上方来源上方。 我需要更多方法来更改渲染,以减少碰撞频率。理想情况下,渲染修改将: 不要被其余的文本所震撼。例如,这导致我忽略了反视频属性。 不容易与其他更改混淆。上划线很容易被误认为前一行的下划线。除非字体大小不切实际,否则许多变音符看起来都差不多。 在空间上靠近其他变化所在。现在,一旦我的眼睛找到了目标角色,所有的信息,标记,下划线和字母就在那里。 可以正确显示变音标记的固定宽度字体(编码所需)很好地工作(我必须从Consolas切换到DejaVu Sans Mono,以使标记正确呈现) 在拉丁字母上工作。例如,有阿拉伯文的组合标记,但它们不与拉丁字母字符组合。 不要更改字母的颜色,因为它已经用于语法突出显示。 实际上可以在emacs中使用emacs lisp;) 也许有特殊的unicode字符控制渲染,可能会被滥用以开辟新的可能性?还是一种加粗下划线的方式,以便我可以轻松区分更多颜色?还是其他一些晦涩的emacs功能,可让您在unicode之外的字符顶部显示标记?

1
Emacs中是否有用于输入字段的库?
有几种Emacs模式使用(类似)形式:自定义界面是其中的一种,消息模式(阅读:其标题部分)是另一种形式;有更多的人,不幸的是并不总是很相似。我所说的“表格”是指一个缓冲区,其中包含只读部分和指定用于输入文本的位置。它可能包含也可能不包含按钮(它可能应该接受C-c C-c为确认/提交键,而不管是否存在OK按钮)。 我对字段中的自动完成特别感兴趣(尤其是使字段具有某些指定集合(例如,逗号分隔)中的值的列表)。我的问题是:是否有任何Emacs库可以轻松(通过“ easy”,我的意思是不重新发明轮子)来创建这种形式,还是我自己编写所有代码? (我想,我应该在后一种情况下做的是(1)设置缓冲区的某些部分只读,(2)准备一个特殊的主要模式,使得例如TAB与S-TAB开关“场”之间,以及(3)可能使用Icicles或Helm等自动补全功能。)

2
窗口位置中的临时文本,没有要修饰/覆盖的文本?
问:如何在屏幕位置的窗口中临时显示文本,而没有文本以显示/叠加? 我熟悉文本属性和覆盖背后的基本概念(另请参见本主题),已经使用了几次,但绝不熟练。我有限的理解是,需要文本来进行调整或覆盖,但是我想知道如何使用窗口中没有任何文本的部分。 这是示例的屏幕截图: 如何将文本临时(临时)放在屏幕快照的红色框中,即文本右边或缓冲区最后一行下方的空白处?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.