English | 简体中文
新一代的 Emacs 图形应用框架,通过扩展 Emacs 的多媒体能力,达到 Live in Emacs 的终极目标
Emacs 距今已经有 45 年的发展历史,比现在人们用的操作系统都老。在这 45 年中,全世界最顶级的黑客在贡献自己的智慧和想象力,一起构建了 Emacs 这个伟大的开发者工具生态。
当你是一个需要使用十几门编程语言的黑客和键盘流信仰者,Emacs 绝对是你的不二之选。
Emacs 的劣势也是因为它太古老了,导致在多线程和图形扩展能力已经无法跟上时代的步伐,在很多地方发展落后于 IDEA 和 VSCode。
Emacs Application Framework (EAF)的愿景是在保留 Emacs 古老的黑客文化和庞大的开发者插件生态前提下,通过 EAF 框架扩展 Emacs 的多线程和图形渲染能力,实现 Live In Emacs 的理想。
EAF 是一个可编程扩展的框架,它自带一系列丰富的应用,你可以自由选择哪些下载:
浏览器 | PDF 阅读器 |
---|---|
![]() |
![]() |
音乐播放器 | 文件管理器 |
---|---|
![]() |
![]() |
... 还有很多!
EmacsConf 2020: 用 EAF 扩展 Emacs 图形应用 | EmacsConf 2021: EAF 2021 更新报告 |
---|---|
![]() |
![]() |
EAF 可以在多个操作系统下工作,包括 Linux (X11 和 Wayland), Windows,macOS 和 FreeBSD,安装方法非常简单。
git clone --depth=1 -b master https://github.com/emacs-eaf/emacs-application-framework.git ~/.emacs.d/site-lisp/emacs-application-framework/
调用 Elisp 函数M-x eaf-install-and-update
或者手动在 Terminal 跑install-eaf.py
安装脚本:
cd emacs-application-framework
chmod +x ./install-eaf.py
./install-eaf.py
install-eaf.py
脚本有许多有用的选项,可以通过--help
查看。
从这里开始,你可以把 EAF 加入 Emacs 的 load-path
,然后在 init.el
中写入:
(add-to-list 'load-path "~/.emacs.d/site-lisp/emacs-application-framework/")
(require 'eaf)
或者,如果你使用use-package,下面有一个简单的配置文件供你参考:
(use-package eaf
:load-path "~/.emacs.d/site-lisp/emacs-application-framework"
:custom
; See https://github.com/emacs-eaf/emacs-application-framework/wiki/Customization
(eaf-browser-continue-where-left-off t)
(eaf-browser-enable-adblocker t)
(browse-url-browser-function 'eaf-open-browser)
:config
(defalias 'browse-web #'eaf-open-browser)
(eaf-bind-key scroll_up "C-n" eaf-pdf-viewer-keybinding)
(eaf-bind-key scroll_down "C-p" eaf-pdf-viewer-keybinding)
(eaf-bind-key take_photo "p" eaf-camera-keybinding)
(eaf-bind-key nil "M-q" eaf-browser-keybinding)) ;; unbind, see more in the Wiki
你可以用下面的代码来加载一部分 EAF 应用,比如浏览器、PDF 阅读器和视频播放器,更多的应用请查看 应用列表:
(require 'eaf-browser)
(require 'eaf-pdf-viewer)
恭喜,到这一步你已成功下载好了 EAF!你可以通过M-x eaf-open-demo
(前提是你下载了demo
应用)看看 EAF 是否可以成功运行了。
下面是 EAF 应用的启动命令:
应用名称 | 启动命令 |
---|---|
浏览器 | M-x eaf-open-browser 在浏览器中打开或搜索 |
M-x eaf-open-browser-with-history 搜索历史或者打开 URL |
|
HTML 邮件渲染 | M-x eaf-open-mail-as-html 在 gnus ,mu4e ,notmuch 等邮件客户端中执行 |
PDF 阅读器 | M-x eaf-open 输入 PDF 文件 |
视频播放器 | M-x eaf-open 输入视频文件 |
图片浏览器 | M-x eaf-open 输入图片文件 |
Markdown 预览 | M-x eaf-open 输入 Markdown 文件 |
Org 预览 | M-x eaf-open 输入 Org 文件 |
摄像头程序 | M-x eaf-open-camera |
终端模拟器 | M-x eaf-open-terminal |
文件管理器 | M-x eaf-open-in-file-manager |
二维码下载文件 | M-x eaf-file-sender-qrcode or eaf-file-sender-qrcode-in-dired |
二维码在线浏览器 | M-x eaf-file-browser-qrcode |
无线分享 | M-x eaf-open-airshare 输入要分享给手机的字符串 |
思维导图 | M-x eaf-create-mindmap or M-x eaf-open-mindmap |
微软 Office 阅读器 | M-x eaf-open-office |
jupyter | M-x eaf-open-jupyter |
音乐 | M-x eaf-open-music-player |
系统监视器 | M-x eaf-open-system-monitor |
演示程序 | M-x eaf-open-demo |
Vue.js 演示程序 | M-x eaf-open-vue-demo |
M-x bookmark-set
(默认C-x r m
)以及M-x bookmark-bmenu-list
(默认C-x r l
)。建议你时常git pull
并且 运行install-eaf.py
(M-x eaf-install-and-update
)来更新各个 EAF 应用及其依赖。
如果你使用中遇到任何问题,并且问题是git pull
后出现的,请先阅读Mandatory Procedures to Keep Your EAF Up-To-Date页面。
关于其他问题,请用命令 emacs -q
并只添加 EAF 配置做一个对比测试,如果 emacs -q
可以正常工作,请检查你个人的配置文件。
如果emacs -q
环境下问题依旧,请到这里反馈, 并附带 *eaf*
窗口的内容给我们提交 issue,那里面有很多线索可以帮助我们排查问题。。
如果你遇到崩溃的问题, 请用下面的方式来收集崩溃信息:
(setq eaf-enable-debug t)
eaf-stop-process
停止 EAF 进程*eaf*
的内容下面列表列展示了 EAF 在 Emacs 社区的应用。如果我们遗漏你的应用,欢迎提交 PR 来加到下面列表中。
你想把 Emacs 开发成一个操作系统吗?
想要在 Emacs 里面生活的更舒适吗?
想要创建下一个激动人心的 Emacs 插件吗?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。