hsingko


使用 Emacs 管理 kindle 电子书

一直以来,我使用 kindle 阅读电子书常常有两个痛点:

  1. 不支持 epub 格式,需要将下载的电子书转换成 mobi 或者 azw3 格式
  2. 将电子书传输到 kindle 上比较麻烦

以往我的解决方式是使用 calibre ,但 calibre 实在太慢,而且必须要将电子书加入到数据库中才能进行后续操作,而我并不想将随便什么书都保存下来。

幸好有 Emacs ,我可以用更轻松的流程完成同样的目的。用到的包有两个:

  1. dwim-shell-command ,一个异步执行外部命令的工具,用来执行 calibre 提供的 ebook-convert 来转换电子书
  2. 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"))
  )