面向产品经理的Emacs教程:29. 在Emacs里看书

· 1408字 · 3分钟

1 课程回顾 🔗

上节课,我们了解了如何在 Emacs 里进行密码管理,它的好处在于跨平台,易搜索易维护,尽可能的符合 All-in-Emacs 的理念。当然,Emacs 并不能解决所有的问题,很多问题并不适合在 Emacs 里处理,这个跟每个人的工作的习惯有关。只要找到适合自己的,提升生产力的方法就是好的方法。

本节课,我们讲介绍如何在 Emacs 里看书。

2 概述 🔗

看书这件事,真的是仁者见仁,智者见智。纸质书和电子书之争,我想可能会长期存在下去。对我个人来说,纸质书有其得天独厚的体验,纸张的触感,文字的墨香,看到书渐渐读薄的喜悦等等。但同样,纸质书也有其缺点,如携带不方便,难以搜索定位等等。

电子书随着科技的发展,在阅读里的地位和比重越来越多,当前,手机已经占据了人们短时阅读的大半壁江山。如何系统的管理电子书,也有诸多解决方案:

  • 微信读书
  • calibre 本地管理
  • 基于 NAS 的 TaleBook

而我,天然对于商业公司的云服务有一种不信任,所以虽然用过微信读书,还是放弃使用它。我的所有电子书的管理,都是基于本地/NAS方案,当然,这个也仁者见仁。

3 书从哪里来 🔗

提到这个问题,怕是不得不提到传说中的 Z-Library,虽然明面上已经被漂亮国政府封禁了,但是实际上人家还是好好的活着。我的大部分电子书都是从这里下载。如果你不知道如何使用,也没有关系,网上大把的 Z-library 的镜像,电子书其实一点也不难找。

说完了书从哪里来,也说下到底应该下载什么格式,我们常见的电子书格式有如下这些,我自己的个人习惯是优先选择 epub

  • epub
  • pdf
  • mobi
  • txt

如果找不到电子书,那正好给了自己买实体书的理由,边看边通过 Org mode 写读书笔记。

4 calibre 本地管理 🔗

解决了书从哪里来,那下一步就是如何在 Emacs 里管理图书和看书了。我们通过 calibredb.el 插件来管理。

4.1 安装依赖 🔗

我们需要提前安装 calibre :

brew install --cask calibre

以及 sqlite:

brew install sqlite

对于 epub 格式的书籍,我们需要安装 nov 这个插件:

(use-package nov
  :ensure t
  :mode ("\\.epub\\'" . nov-mode)
  :bind (:map nov-mode-map
              ("j" . scroll-up-line)
              ("k" . scroll-down-line))
  )

4.2 安装 calibredb.el 🔗

(use-package calibredb
  :ensure t
  :commands calibredb
  :bind ("\e\e b" . calibredb)
  :config
  (setq calibredb-root-dir "~/Calibre")
  (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
  (setq calibredb-library-alist '(("~/Books/books")
                                  ))
  )

安装非常简单,这里值得注意的变量有下面几个:

calibredb-root-dir
书库的位置,即插件去哪个目录找书,这个目录需要跟 calibre 软件的设置的书库目录一致
calibredb-db-dir
数据库的位置
calibredb-library-alist
所有书库的位置列表

4.3 配置 calibre 🔗

我们通过 brew 安装完 calibre 后,打开软件,建立书库,位置选择 ~/Calibre ,然后加入书本,假设我们所有下载的电子书都放在了 ~/Books/books 文件夹,那选择加入书本,选择将单个资料夹加入书库:

然后就可以看到所有的图书了:

4.4 在 Emacs 里使用 calibredb.el 🔗

做完上面的事后,在 Emacs 里,只需要执行 M-x calibredb 即可:

通过 jk 上下选择,按回车即可看书了:

我们还可以灵活的通过 bookmark-set (C-x r m) 和 bookmark-jump (C-x r b) 来设置书签和跳转书签。

5 TaleBook NAS云管理 🔗

这种方式依赖于 NAS 的设备,这里仅仅做个分享,并不是所有人都喜欢 NAS,但请相信我,有了 NAS,“真香”一定会是你的感受!

在 NAS 的 Docker 里,安装 talebook ,然后进行相关的配置,具体配置方法这里就不详细说了。

它的作用相当于在 NAS 上搭建了一个 Calibre 的 Web 服务,这样我们就可以通过域名链接直接通过云端访问(而且是你自己的云)。在 Emacs 里,可以通过 emacs-application-framework 大法来访问:

6 结语 🔗

通过今天的学习,我们了解了如何在 Emacs 里进行图书的管理和阅读,但工具仅仅是工具,工具也只能帮助你提升效率,我们得去做,才有可能持续提升。Emacs 不是目的,读书才是我们的目的。

这节课的配置文件的快照见:emacs-config-l29.org

你也可以在 这里 查看最新的配置文件。