图一乐搞着玩的,也许没啥用
使用:克隆仓库后运行 build.sh 然后
(add-to-list 'load-path "/Users/keke/Code/Github/animation.el")
(require 'particle-cursor)
(particle-cursor-mode 1)
(require 'neon-text)
(neon-text-mode 1)
(require 'ripple-click)
(ripple-click-mode 1)
(require 'buffer-transition)
(buffer-transition-mode 1)
(setq buffer-transition-type 1)
(require 'window-shake)
(window-shake-mode 1)
(require 'bracket-lightning)
(bracket-lightning-mode 1)
edit: 新添加了鼠标点击特效
edit: 新加了个文本彩虹效果
edit: 好像帖子里面插入较大的图片会让我浏览器变卡,所以把效果图都删了,去GitHub看吧
edit: 添加了个打字地震(窗口随机摇晃)效果
edit: 添加了两个括号之间显示闪电的效果,需要 show-paren-mode
edit: 又添加了一堆东西,不想再 edit 了,效果图全部放在 GitHub
13 个赞
ksqsf
3
keke 又回来玩 emacs 了吗,真是口嫌体正直啊 
3 个赞
测试了一下,炫酷是真的炫酷。
可惜我日常可能用不太上。
粒子效果很好看,但是稍微有一点遮挡,感觉不太适合长时间打字。
切换 buffer 的动画,如果用了 consult-buffer 或者 vertico-buffer-mode ,buffer 切换简直头晕。

但是大佬的动画效果确实nice,因此 ai 问了一下,常见的动画有哪些,大佬看看有没有能够实现的:
1) Jump/Teleport 动画(跳转路径可视化)这个 RnE 大佬实现了。
- 场景:
avy/consult-line/isearch 选中后光标瞬移。
- 动画:光标从旧位置“飞”到新位置(短弧线/直线),或者沿途留下淡淡的 trail。
- 价值:让你不迷路,知道自己跳到哪里了。
2) Ripple/波纹点击(鼠标点击/光标落点)
- 场景:鼠标点某处、或者
C-a/C-e 这种大跨度移动。
- 动画:落点扩散一圈波纹,0.15–0.25s 消失。
- 价值:录屏特别清晰;平时也能降低“我点到哪了”的焦虑。
3) 段落/语句高亮“呼吸”(Pulse)
- 场景:执行重排、格式化、
undo/redo、yank、comment-line 后。
- 动画:目标区域从高亮渐隐到正常(或反过来),类似 “pulse”。
- 价值:非常实用、侵入性低。
4) Insert/Delete 粒子尘(Subtle)
- 场景:输入/删除字符、批量删除词/行。
- 动画:字符碎成小尘埃散开/聚合(强度可调,默认很克制)。
- 价值:观感爽,但要控制频率(只对大操作触发,别每键触发)。
5) 选区“液态边缘”(Selection goo)
- 场景:拖拽选区、矩形选择、expand-region。
- 动画:选区边界带轻微弹性/粘连效果,像橡皮泥拉伸。
- 价值:提升“选区是活的”的感知;适合演示。
6) 缩进指南/结构线条的“流动”
- 场景:indent guides、scope line(当前代码块)。
- 动画:当前 scope 的线条轻微流动/渐变,或随光标切换带过渡。
- 价值:帮助你把注意力放在当前结构层级。
7) Diagnostics/错误提示“震动 + 归位”
- 场景:保存触发 LSP/编译错误,光标在错误行。
- 动画:错误处轻微抖动(2–3px)+ 红色波纹,不要太多次。
- 价值:比纯红线更“强提醒”,但不要让人烦。
8) 搜索命中“逐个点亮”(Search sweep)
- 场景:
isearch/consult-ripgrep 预览。
- 动画:命中项按出现顺序依次点亮/渐隐,或当前命中强高亮、其他弱高亮过渡。
- 价值:更容易建立“分布感”。
9) 分屏过渡(Pane slide/fade)
- 场景:pop-to-buffer。
- 动画:窗口内容轻微淡入/滑入 0.12s。
- 风险:重绘多,Emacs 上要谨慎;但做“轻淡入”通常可接受。
1 个赞
yibie
5
我现在深刻地感觉到,emacs社区的活力,在我们这里
yibie
8
怎么用啊?我执行了 build.sh 之后没反应。
没反应,应该就是build 成功了。生成 dylib 文件就行。
(setq particle-cursor-input-keys '(" "))
(setq particle-cursor-commands
'(newline delete-char delete-backward-char backward-delete-char-untabify puni-backward-delete-char meow-change delete-word-backward rime--return rime-send-keybinding))
(defun particle-on-type ()
(when (or (memq this-command particle-cursor-commands)
(and (equal this-command #'self-insert-command)
(member (this-command-keys) particle-cursor-input-keys)))
(animation)))
降低粒子爆炸的频率,使用起来感觉比较舒适。只在空格,回车,删除等操作时出现,既好看,又不至于影响打字。
2 个赞
试了下,ripple-click-mode 似乎鼠标移出frame再移回来就失效了。
这些特效在合适的场景下合理用应该挺有用的
我使用 neon-text-mode 会卡死emacs,其余没有问题。
RnE
14
看了一下,走马灯是通过遍历 buffer 里所有 character 然后通过 overlay 附上颜色的
用 CoreAnimation 实现的只有荧光效果
做了一个屏幕故障的特效
使用:
运行 build.sh 和 compile-metal.sh
compile-metal.sh 用于编译着色器,如果失败,可以下载预编译的着色器放到项目目录 Release test · kekeimiku/animation.el · GitHub
配置文件添加
(add-to-list 'load-path "/Users/keke/Code/Github/animation.el/")
(require 'glitch-effect)
(glitch-effect-mode 1)
预览:
1 个赞
yibie
16
大佬,麻烦看一下 pull request,我添加了一个新效果。

3 个赞
Deeson
18
请问 Emacs-Plus 的 glow-text 没有效果,有其他坛友遇到吗?(其他几个特效,倒是有能用的)
原来是有些需要编译着色器(compile-metal.sh),编译了就好了 
Deeson
19
试了下 glow-text 确实是独特的体验!但是和想象中不太一样 
其实我一直很羡慕 VScode 主题 SynthWave '84 的霓虹灯光:
感觉不仅仅是漂亮,而且可以提供更多的信息(比如霓虹的关键字高亮),请问坛友,这个特性,有可能被本帖的机制实现吗? 
备注:
- (1)、大概看了下代码,感觉当前 glow-text 的原理,是把一系列“当前画面在X、Y偏移一点点距离后的图层”,叠加起来实现的,所以最终的效果是“字体边界”会有点糊;
- (2)、VScode 的霓虹灯光效果,其字体边界依旧是锐利的,但是周围有光晕;
- (3)、如果能够仅仅把(1)中的图层,替代画面的背景(即非字体的部分),那么或许就能实现(2)的效果;
- (4)、有一些 在 emacs ns 上糊了一个毛玻璃背景 这样的 patch,可以使 Emacs 的背景变透明或毛玻璃,而完全不影响字体,不知道有没有借鉴意义,以实现(3)。