INVALID LIBRARY
代表路径里面可能没有 metadata.db
,所以才提示 INVALID LIBRARY
.
我尝试了以下删掉 ~/Calibre Library/
整个目录,然后重建一个,添加一本电子书。重新尝试 calibredb.el
还是一样的问题。
肯定是 string-match-p
判断语句里面 正则的问题,我看到值 line
就不包含 ^C
. 所以返回肯定是nil,而 calibredb-candidates
返回nil,然后也就 INVALID DATABASE 了。
你看看我视频中edebug时line的值,调整下正则?
好的,你能把line内容复制给我吗,我想看看中间的分隔符是什么字符,好奇怪,看你的图片,为什么你的分隔符会变成空格?如果用空格做分隔解析不了内容,必须要用一个不常用的分隔符才可以。
配置分隔符可以看到line里面有分隔符吗?
(setq calibredb-sql-separator "::::::::")
刚看了一个帖子,sqlite - overriding .sqliterc .mode on sqlite3 batch mode - Stack Overflow
可能是受系统的.sqliterc
影响了,我明天试试sqlite的-list
选项。
我也没想到这个。哈哈,这是我的 .sqliterc
-- [beautiful views]
-- .header on
-- .headers on
.mode column
.nullvalue "Null"
-- .separator "|"
-- .prompt "sqlite> " " ...> "
-- .echo off
在取消上面两个设置项后,calibredb正确工作了。 line值确实能看到 ^C
了。
奇怪的是,我想要测试到底是sqliterc文件哪个选项导致了这个问题时,发现我重新启用那两个选项,calibredb还是正常的。。。。无语了。。。是由于缓存的缘故么?
我修改了最新的代码,现在不会受.sqliterc
影响了。。是因为mode要是list
才行,因为column
模式下无视separator
。
终于问题解决了,感谢感谢!!!
有兴趣的话,可以看看我最新的Develop分支,版本1.9.0
,对BibTex和Org-ref的支持。现在初步功能是,将整个库导出到一个BibTex文件,org-ref通过读取该Bib文件从而实现互动,欢迎反馈。晚点稳定了,就合到Master里面。
以M-x calibredb-list
开始,好像得一本一本确认?几百本有点太累了,有没有方式直接确认导出全部书?谢谢
另外能不能设置在*calibredb-search
里隐藏显示comment
部分哪?
不太懂直接确认全部书什么意思。默认就是全部书导出,不用确认。
如果要隐藏,可以配置
(setq calibredb-comment-width 0)
,大于0,就是限制的长度,-1就是原长,其他元素类似。
谢谢!
我指的是当M-x calibredb-list
之后,minibuffer依次出现每本Description: XXXXXXXXXXXX
(就是每本书的名字),然后按Enter,就出现下一本书的。因为我的书有上百本,所以按了,比如5次Enter后,我用C-g C-g
中断,然后就会出现*calibredb-list*
的buffer,里面只有5本书的记录。
注:我是从melpa安装的calibredb.el,应该不是git HEAD。
calibredb-list
导出是需要点时间的,书库越大,需要的时间越久,不需要按回车确认(难道是 Bug?但是我测试了,没有需要用户按回车的情况,还是你想要这个功能?),等完成后,你可以将该buffer另存为一个普通的 org 文件。
Version 2.0.0
发布:
- 修改部分按键:
DEL
,RET
,v
,V
,M-n
,M-p
. -
calibredb-add
支持多个marked同时添加(暂时只支持 ivy 标记多个文件)。 -
calibredb-open-dired
打开当前光标下的文件, 进入 Dired 后方便从文件系统处理 Ebook。 - 添加
all-the-icons
的文档,(setq calibredb-format-icons t)
,开启图标支持。 - 添加
width
配置的文档。
不是我想要这个功能,而是在我使用时就这样。我上个回复补了张图(那是我的第一本书),每个minibuffer中的Description
是可以编辑的,所以不按Enter就会永远停在那里。
你的不会?那很奇怪啊,我再查查看。谢啦
我知道为什么了,是org-insert-link
的问题,我明天修复一下。谢谢反馈~
好了,修复好了。
2.0.0
全面支持所有Calibre支持的字段输出到 BibTex 文件,并与org-ref互动。
(require 'org-ref)
(setq calibredb-ref-default-bibliography (concat (file-name-as-directory calibredb-root-dir) "catalog.bib"))
(add-to-list 'org-ref-default-bibliography calibredb-ref-default-bibliography)
(setq org-ref-get-pdf-filename-function 'org-ref-get-mendeley-filename)
附上演示和对比图: