Roife
1
pulse 是一个很好玩的东西,可以暂时闪烁一行或者一个区域(我从 centaur emacs 那里学到了一些配置很好用🤣)
然而最近在 27 寸 4K 屏幕上是用的时候,发现 Emacs 全屏时 pulse 非常卡顿,猜测是因为 pulse 是用 CPU 渲染的,屏幕太大了 CPU 跟不上。
看了一下 pulse 的源码,发现是在指定区域上放一个 overlay,然后用一个 timer 来更新 overlay 的颜色,可以直接设置
(setq pulse-delay 0.08
pulse-iterations 2)
第二个是每次闪烁刷新几轮,第一个是两次刷新之间的时间间隔。模式迭代 10 轮,我觉得没有必要,对我来说 2~4 就已经看不出区别了,因此设置为上面的参数。
7 个赞
我是把pulse-delay
的时间调长点,比如老王的color-rg
在搜索到结果,选择某个candidate时闪烁太快了,没来得及反应就找不到了。
(setq color-rg-flash-line-delay 20.0)
(defun color-rg-flash-line ()
(let ((pulse-iterations 1)
(pulse-delay color-rg-flash-line-delay))
...
xiaoC
3
我也像你这样设了这个值,但不知道为啥,我在调试的时候才能在目标buffer看到闪烁,不调试的时候就看不到了 我用的是windows,莫非和这个有关?
我的经验,快速跳转或者闪烁之前要加一个
(redsplay t) 的设置,这应该就会画出来。
我用的是macOS,就设置了时间,调长到20秒,我能一眼找到对应的位置。
xiaoC
7
感谢猫哥的解答,我在调用前加了你说的这句,的确是能出来了。不过出来的现象却各异。有的是正常闪烁一下,有的是出来后,然后停留20秒。有的是没有闪。后来我在此处加了一句,并且把停留20秒去掉了
这样所有的跳转都能正常的看到闪烁,这就够了。我不需要停20秒,因为这里的场景关键是要知道它跳到哪一行。我以前不知道原来有这个闪烁,之前跳完之后就两眼懵了
pulse 这个本身就不好用,比如我想连续高亮两个地方就无法办到。
好像是 pulse 对于开始和结束的判定有问题,一旦两次操作有重叠就会失效,所以最后我还是靠传统的 highlight。
1 个赞
我一直用默认的参数好像还行啊,不管是4k 2k的屏幕都没遇到楼主的问题
Roife
12
有可能是我的电脑机能的问题 发出来记录一下,万一有朋友遇到同样的问题
1 个赞