首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

Emacs 是我的浏览器

2026-11-16 1 阅读 约9分钟阅读 nyc111
分享:
字号:
随着我越来越渴望使用 emacs 作为我唯一的计算环境,我开始更加认真地对待在其中浏览网页。我以前认为 EWW 很不错,但远没有能力,在使用了几天之后,它似乎可以用于大约 85-90% 的用例 - 即使在互联网这个充满 javascript 的地狱中也是如此。为什么?我在自己使用现代浏览器(chromium/firefox)的过程中发现,它太容易分心——太容易偏离轨道,掉进兔子洞,占据了我的一天。关于我应该如何度过时间,有无数的建议,无数闪亮的物体让我的注意力从创造力和深度的奖品上移开。 EWW(或任何终端浏览器,非 emacs 用户的 lynx 或 browsh)已经彻底否定了这一点。除此之外,我的信念是,我们应该大踏步地抛弃互联网的第 8 层——社交平台的限制前端和限制实际话语的网络角落(Discord,我在看着你)。我们对大型科技平台放弃了太多,却没有得到任何有价值的回报,以至于许多人现在认为互联网正在消亡。互联网只是一种传递机制,对于真正了解它的人来说,互联网从未如此活跃。我真心推荐像 1999 年一样使用互联网。即使在我的手机上,我也已经停止使用 javascript 前端,并开始在 emacs 中使用 eww(在 termux 中),仅在大约 5-10% 的用例中回退到 fennec:我发现这种使用互联网的方式比任何其他方法的信号要高得多,使我能够查找信息、阅读文档并生成更多内容。我是如何做到这一点 对于外行来说,emacs 附带了 EWW (Emacs Web Wowser),允许您直接在 Emacs 内部支持使用图像和 gif 浏览网页(gif 什么时候消失的,我现在几乎从未见过它们!)。我有一些合理的默认值,可以轻松使用,例如使用 B 表示返回,U 表示在点上拉动 url,以及一些内置函数。点击 R 将调用 eww Read,这类似于 Firefox 中的阅读器模式,删除页眉和页脚并专注于页面上的文本。有用。您可以使用 & 将页面发送到默认浏览器。如果页面渲染得不好,这是一个很好的后备方案。 D 将下载图像到本地,b 返回上一页,a 将保存书签。所有这一切都让 eww 的浏览变得真正令人愉快。我还设置了 .pdf 在 emacs 中打开,.mp4 和 youtube/video 托管链接在 mpv 中打开,gopher/gemini 链接在 elpher 中打开。 Elpher 是 gopher 和 Gemini 协议的 EWW,是全信号、无噪音的 smolweb。 EWW 使用 Shr 渲染 html,因此您将在下面的配置中看到一些标注: 我的 browser.el 设置:以下是我如何配置 EWW 在我的 Emacs 配置中工作: (setq eww-search-prefix "https://searx.labrynth.org/search?q=") (setq eww-download-directory (expand-file-name "~/Downloads/")) (defun my-browse-url-mpv (url &rest _args) (start-process "mpv" nil "mpv" url)) (defun my-browse-url-pdf (url &rest _args) "获取远程 PDF 并在 Emacs 内的 pdf-tools 中打开。" (let ((tmp (make-temp-file "emacs-pdf-" nil ".pdf"))) (url-copy-file url tmp t) (find-file-other-window tmp) (setq browser-url-handlers '(("\\(youtube\\.com\\|youtu\\.be\\|vimeo\\.com\\|twitch\\.tv\\)" . my-browse-url-mpv) ("\\.mp4$" . my-browse-url-mpv) ("\\.pdf$" . my-browse-url-pdf) ("^gemini://" . elpher-browse-url-elpher) ("^gopher://" . elpher-browse-url-elpher) ;; 保留后备设置 (setq browser-url-secondary-browser-function 'browse-url-generic browser-url-generic-program "chromium") (with-eval-after-load 'eww (define-key eww-mode-map (kbd) "=") #'text-scale-increase) (define-key eww-mode-map (kbd "-") #'text-scale-decrease) (define-key eww-mode-map (kbd "0") #'text-scale-adjust)) (setq shr-max-image-size '(800 . 600)) (setq shr-image-animate t) (defun my/eww-download-image-at-point () "将图像下载到 `eww-download-directory'。" (let ((url (or (get-text-property (point) 'image-url) (get-text-property (point) 'shr-url)))) (message "该点没有图像") (let* ((filename (file-name-nondirectory (url-filename)) (url-generic-parse-url url)))) (dest (expand-file-name filename eww-download-directory))) (url-copy-file url dest t) (message "Saved: %s" dest))))) (with-eval-after-load 'eww (define-key eww-mode-map (kbd "b") #'eww-back-url) (define-key eww-mode-map (kbd "a") #'eww-add-bookmark) (define-key eww-mode-map (kbd "U") #'shr-copy-url) (define-key eww-mode-map (kbd "D") #'my/eww-download-image-at-point)) 我的默认搜索引擎是我自己的 Searx 实例,这是一个尊重隐私的前端,合并了所有其他搜索限制 您不会观看 YouTube 视频或阅读推文(x.com 与不支持 JS 的浏览器是敌对的)。您不会使用社交媒体,也不会登录任何平台。
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱