使用 Emacs 管理 kindle 电子书
2024-07-03
一直以来,我使用 kindle 阅读电子书常常有两个痛点:
- 不支持 epub 格式,需要将下载的电子书转换成 mobi 或者 azw3 格式
- 将电子书传输到 kindle 上比较麻烦
以往我的解决方式是使用 calibre ,但 calibre 实在太慢,而且必须要将电子书加入到数据库中才能进行后续操作,而我并不想将随便什么书都保存下来。
幸好有 Emacs ,我可以用更轻松的流程完成同样的目的。用到的包有两个:
- dwim-shell-command ,一个异步执行外部命令的工具,用来执行 calibre 提供的
ebook-convert
来转换电子书 - dired ,Emacs 自带的文件管理工具
演示如下:
其中 dwim-shell-command
配置如下:
(use-package dwim-shell-command
:ensure t
:defer nil
:bind (([remap shell-command] . dwim-shell-command)
:map dired-mode-map
([remap dired-do-async-shell-command] . dwim-shell-command)
([remap dired-do-shell-command] . dwim-shell-command)
([remap dired-smart-shell-command] . dwim-shell-command))
:config
(require 'dwim-shell-commands)
(setq dwim-shell-command-default-command "")
(defun my/dwim-shell-command-convert-to-azw3 ()
"convert marked ebooks to azw3 format"
(interactive)
(dwim-shell-command-on-marked-files
"convert ebooks with ebook-convert"
"ebook-convert '<<f>>' .azw3"
:utils "ebook-convert"))
)