EAF,新一代的Emacs图形应用框架,扩展Emacs的多线程和图形渲染能力,实现Live In Emacs的理想
EAF Browser, a modern, customizable and extensible browser in Emacs
File manager application for the Emacs Application Framework.
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
查看。
Wayland 环境的支持分四种情况:
cp -r emacs-application-framework/gnome-shell/eaf-wayland@emacs-eaf.org ~/.local/share/gnome-shell/extensions
并在 gnome-extensions
中激活 eaf-wayland@emacs-eaf.org
插件Unity 桌面环境支持: 需要安装xdotool
从这里开始, 你可以把 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 文件, 选择 markdown-previewer |
Org 预览 |
M-x eaf-open 输入 Org 文件, 选择 org-previewer |
摄像头程序 | M-x eaf-open-camera |
终端模拟器 | M-x eaf-open-pyqterminal |
文件管理器 | M-x eaf-open-in-file-manager |
新闻阅读器 | M-x eaf-open-rss-reader |
Git 客户端 | M-x eaf-open-git |
地图路径规划 | M-x eaf-open-map |
二维码下载文件 |
M-x eaf-file-sender-qrcode or eaf-file-sender-qrcode-in-dired
|
二维码在线浏览器 | M-x eaf-file-browser-qrcode |
无线分享 |
M-x eaf-open-airshare 输入要分享给手机的字符串 |
Markdown 思维导图预览 |
M-x eaf-open 输入 Markdown 或 Org 文件, 选择 markmap |
思维导图 |
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 插件吗?