如何动态的设置高亮?

在一大段的文字中 有些关键词被某种方式标记出来 比如说两个=

我想当光标处于关键字的时候 高亮关键字周围的文字

当光标离开关键字的时候 让周围的文字变暗


edit 1

可能我说的有点含糊 我详细说明一下

(defvar vvvvvv "")

......
.....
....
....
(defun use-vvvvv ()
 ....

 (print vvvvvv)
 ...
  )


我想看 vvvvv 的用法 可以直接的搜索下一个

但是 如果能把 中间的 。。。。。。。。都隐藏起来不是更好吗?

你例子中说的隐藏,是说颜色上,还是内容不显示。

如果能改变他的颜色 当然也就能改变他的display属性(进而不显示)

首先需要一个定时器,当光标静止 n 秒判断是否处在关键字上,是则淡化/隐藏周围的文字。

然后需要两/三组 face:

  1. 光标落在关键字之外时的关键字 face
  2. 光标落在关键字之上时的全局 face
  3. 光标落在关键字之上时的关键字 face (可选)

其实,不考虑其他颜色问题,swiper 不能满足需求?

swiper 好像只能显示一行 一行觉得不太够

如果不是一段代码,而是一句话呢?一句话占了两行,或者我想显示用空白行分隔的段落!

楼主要造一个更好用的轮子,我是非常欢迎。

不过就该功能我是这样操作的。使用 ivy 里的 calling on,随便多少都能预览。方式不同目的相同,殊途同归吧

emacs

谢谢你的建议

我不是用他来看代码 是想用他来看电子书

比如说 C++20的ISO文档(虽然我没看多少 只是用来说明工程量的大小)

里面的概念怎么也得上千个吧 如何让这些概念关联起来呢?

还有就是 比如说 cppreference.com里面的网页

虽然reference不用看的那么细 但是总觉得看过一遍 和 没看过 的区别不大

最头疼的应该是 pdf 了 我不能编辑他 更不能写本书 想找个重点都不容易

这个场景就需要自己来实现了,@twlz0ne 已经给出了建议。