GithubHelp home page GithubHelp logo

chenyanming / calibredb.el Goto Github PK

View Code? Open in Web Editor NEW
300.0 300.0 15.0 11.95 MB

Emacs calibre client - An Ebook Management Solution in Emacs.

License: GNU General Public License v3.0

Emacs Lisp 100.00%

calibredb.el's People

Contributors

akirak avatar charlie-gordon avatar chenyanming avatar dalanicolai avatar declantsien avatar ipvych avatar ram535 avatar tpeacock19 avatar yiufung avatar yuchen-lea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

calibredb.el's Issues

feature request: fetch-ebook-metadata

First of all thanks for this very beautiful package that almost saves me from opening Calibre-gui. However, usually after adding a book I fetch metadata (incl. cover) automatically with Calibre. Now calibre comes with a command-line utility for fetching the metadata. Would be great if we could use this from Calibre to set the metadata (and download the cover).
This command line utility returns only the first result from all possible sources (Google, Amazon.com etc.), while Calibre-gui let's you choose from multiple results (would be great to have that option here too).

Here is an example of how to use the command that also donwloads the cover in the current working directory:
fetch-ebook-metadata -p "Amazon.com" --authors "dominik" --title "org" -c cover.jpg

calibredb-add only works if ivy-mode enabled, when ivy-mode is available

I am using calibredb master branch. I am normally using helm for completion. However, I have ivy installed, but ivy-mode not enabled. Then nothing happens when I press 'a' in calibredb-search buffer.

If I enable ivy-mode, and have counsel installed, then I can add documents.
Looking at calibredb-add, I believe that an else branch is needed for
(if ivy-mode
)
that does the same as the 't' case in the (cond ((boundp 'ivy-mode)

Alternatively, only do the cond case if both (boundp 'ivy-mode) and ivy-mode are true.

Choosing the location where the bib file will be stored

The instructions in How to interact with org-ref set the value of the calibredb-ref-default-bibliography variable such that the bib file generated by calibredb is inside the folder with my calibre library, as shown below

(setq calibredb-ref-default-bibliography (concat (file-name-as-directory calibredb-root-dir) "catalog.bib"))

This gives the impression that if the user wants to put the bib file in a different location all it is necessary is to set the value of calibredb-ref-default-bibliography to something else. However, no matter which value is set, everytime calibredb is started it will just change the value back to the equivalent of (concat (file-name-as-directory calibredb-root-dir) "catalog.bib"). I suspect that this might be the intended behavior due to the comment below

  • Every time you switch your library, the corresponding BibTex file path will added into org-ref-default-bibliography temporarily

Is it possible to choose the folder where the bib file will be placed? I have a folder with some bib files and I'd prefer if the generated bib file from calibredb was put there as well. Something like "calibre_books.bib" or similar.

生成的catelog.bib内容为空

使用 b b 更新 bib 文件,打开文件后就只有一行内容。
@preamble{"This catalog of 0 entries was generated by calibre.
如果我使用 calibre 生成这个文件,使用上面的命令会覆盖掉此文件的内容。

calibredb-list (wrong-type-argument char-or-string-p nil)

when calling calibredb-list

Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
  calibredb-query-to-alist("<p class=\"description\">  点击链接进入Excel应用大全系列: <br> Excel应用大全<br> Excel 2007应用大全<br> Excel 2010应用大全</p></div>\0112020-04-14 03:34:33.147457+00:00")
  #f(compiled-function (line) #<bytecode 0x4e6899c5>)("<p class=\"description\">  点击链接进入Excel应用大全系列: <br> Excel应用大全<br> Excel 2007应用大全<br> Excel 2010应用大全</p></div>\0112020-04-14 03:34:33.147457+00:00")
  mapcar(#f(compiled-function (line) #<bytecode 0x4e6899c5>) ("2\011Hurst, Mark\011Mark Hurst/Bi Te Su Yang (2)\011Bi Te Su Yang - Mark Hurst\011EPUB\0112012-12-31 16:00:00+00:00\011比特素养\011!论说性.实用.成长.效率\011440272\011<p class=\"description\">「这是一本为数字时代而作的《The Elements of Style》。」──赛斯·高汀(Seth Godin),《紫牛》、《部落》作者。<br>「比特素养」(Bit literacy)指的是在数字时代高效轻松地工作的能力与技巧。堆积如山的电子邮件、密布的待办事项列表、杂乱 的电脑桌面、手持设备时刻的干扰、各种格式的待处理文件……在这个「信息过载」的时代,这些「比特困扰」愈发地凸显。《比特素养》正是一本为信息过载提供解决方案的必读之书。不论你的技术水平如何,都能在书中迅速找到提高效率的方法并立刻投入使用,让「比特」先飞一会儿。</p>\0112020-04-14 03:34:33.147457+00:00" "37\011Stone, Irving\011Irving Stone/Ke Wang Sheng Huo _Fan Gao Chuan (37)\011Ke Wang Sheng Huo _Fan Gao Chua - Irving Stone\011PDF\0112008-04-15 14:50:47+00:00\011渴望生活:梵高传\011!论说性.理论.历史.传记,!虚构类.小说,@人物.艺术家.画家.梵高\01119456347\011<p class=\"description\">《渴望生活——梵高传》是欧文·斯通仅二十六岁时的作品。欧文·斯通认为,最能打动读者的不是名人深厚的成就和辉煌,而是他们追求和探索的过程。七十余年来,梵高悲惨而成就辉煌的人生震撼无数读者。这部作品也成为欧文·斯通的成名作,被译成八十余种文字,发行数千万册,感动亿万读者。</p>\0112020-04-14 03:34:33.147457+00:00" "38\011Feynman, Richard P.\011Richard P. Feynman/Ni Gan Ma Zai Hu Bie Ren Zen Yao Xia (38)\011Ni Gan Ma Zai Hu Bie Ren Zen Ya - Richard P. Feynman\011PDF\0111999-06-14 16:00:00+00:00\011你干吗在乎别人怎么想?\011!论说性.理论.历史.自传/回忆录\0118685558\011\0112020-04-18 06:29:17.013302+00:00" "39\011钱穆\011Qian Mu/Ren Sheng Shi Lun (39)\011Ren Sheng Shi Lun - Qian Mu\011PDF\0112004-05-15 14:50:49+00:00\011人生十论\011!艺术性.文学,!论说性.实用.人生哲学\01110580922\011<p class=\"description\">本书篇章分别作于二十世纪四五十年代和七八十年代,是先生讨论人生问题的随笔和讲演词。全书共分三辑,一为“人生十论”;一为“人生三步聚”;一为“**人生哲学”。先生从**传统文化入手,征诸当今潮流风气,语句随和,娓娓道来,全然是**学问切己体察、虚心涵泳的味道,所以本书不仅是为学者所作,更多的是为青年、为每一个对生活寄予期望的普通人所作。开卷之余,于今国人创业垂统,作为于社会将大有裨益。吾全体也将“高山仰止,景行行止,虽不能至,心向往之”。</p>\0112020-04-18 03:43:26.154603+00:00" "40\011李慎廉\011Li Shen Lian/Ying Yu Xing Ming Ci Dian (40)\011Ying Yu Xing Ming Ci Dian - Li Shen Lian\011PDF\0112001-01-15 14:50:44+00:00\011英语姓名词典\011-工具书.辞典\01130941515\011<p class=\"description\">《英语姓名词典》(精装)收录了最新的英语姓名,包括姓名的注音、汉译、范畴、语源、含义及异体和昵称,姓氏民族属性和教名的性别等。姓名既是历史,也是文化,既是故事,也是画卷。它们反映当时当地的经济状况、**文化传统及人们的风尚习俗,内涵丰富,引人入胜。   点击链接进入新版 :<br> 英语姓名词典</p>\0112020-04-14 03:34:33.147457+00:00" "41\011郝明义\011Hao Ming Yi/Yue Du Zhe (41)\011Yue Du Zhe - Hao Ming Yi\011PDF\0112009-04-15 14:50:46+00:00\011越读者\011!论说性.实用.成长.阅读\01126856345\011<p class=\"description\">怎样躲避不值得付出那么多时间的书?一种无中生有的阅读可能;有十四种外语的可能;如何阅读小说、诗、历史、哲学?为什么要阅读漫画与影像?少阅读一点的理由……这么有趣的事情,再晚开始也不迟! 诸葛亮、陶渊明、朱熹、苏东坡,是怎么读书的?做笔记的方法;主题阅读没那么深奥;Fashion与经典的分界;一个普通读者越界的时候,需要知道的50件事情……<br>这是一本及时的讨论阅读的书,它让我们面对阅读的危机,又揭示了走出危机的新的可能性,并且提出了许多具有操作性的“如何阅读”的建议,不同的读者都可以从中得到启示。</p>\0112020-04-14 03:34:33.147457+00:00" "42\011Hart, Liddell\011Liddell Hart/Di Er Ci Shi Jie Da Zhan Zhan Shi (S (42)\011Di Er Ci Shi Jie Da Zhan Zhan S - Liddell Hart\011EPUB\0112002-08-15 03:46:19+00:00\011第二次世界大战战史(上)\011!论说性.理论.历史,@时间.二战\0119863615\011<div><p class=\"description\"><a href=\"file:///D:/Documents/Reading/%E7%AC%AC%E4%BA%8C%E6%AC%A1%E4%B8%96%E7%95%8C%E5%A4%A7%E6%88%98%E6%88%98%E5%8F%B2%20-%20Liddell%20Hart.pdf\">now</a></p><p class=\"description\">李德·哈特是英国著名军事**家,一生著述宏富,《第二次世界大战战史》既是他的遗著,也是他的重要代表作之一。作者凭藉着个人的军事经历、丰富的资料文件、当事人的访谈记录,集22年之功才完成这部战史。全书对历时六年的二战中大小战役均有翔实的叙述,铺陈详尽。作者同时也对此段历史作了冷静、客观的分析与思考。</p></div>\0112020-04-14 03:34:33.147457+00:00" "46\011Home, Excel\011Excel Home/ExcelYing Yong Da Quan (46)\011ExcelYing Yong Da Quan - Excel Home\011PDF\0112008-03-15 03:58:46+00:00\011Excel应用大全\011-工具书\011132334659\011<div><p class=\"description\">《Excel应用大全》是由ExcelHome技术专家团队在继《Excel实战技巧精粹》之后的一部更大规模和更高水准的制作。《Excel应用大全》分为7大部分,介绍了Excel的技术特点和应用方法,深入揭示背后的原理概念,并配合有大量典型实用的应用实例,帮助读者全面掌握Excel应用技术。内容包括:Excel的基本功能、使用公式和函数、创建图表和图形、Excel数据分析、Excel的高级功能、使用Excel进行协同、Excel自动化。附录中还提供了Excel快捷键、工作表函数、VBA函数、规范与限制的说明等内容,方便读者随时查看。</p>" "<p class=\"description\">  点击链接进入Excel应用大全系列: <br> Excel应用大全<br> Excel 2007应用大全<br> Excel 2010应用大全</p></div>\0112020-04-14 03:34:33.147457+00:00" "47\011杨鹏\011Yang Peng/GRE&GMATYue Du Nan Ju Jiao Cheng (47)\011GRE&GMATYue Du Nan Ju Jiao Chen - Yang Peng\011PDF\0112009-03-15 03:58:47+00:00\011GRE&GMAT阅读难句教程\011!论说性.实用.考试.GRE.阅读\01111330404\011<p class=\"description\">《GRE &amp; GMAT阅读难句教程》讲述了:任何一本以考试学习为目的的教学书籍,如果不能贴近实战,必为废品。《GRE &amp; GMAT阅读难句教程》有两个目的:第一,训练读者在现场迅速读懂GRE和GMAT考试中出现的难句子的能力。第二,《GRE &amp; GMAT阅读难句教程》也可以用作复习GRE和GMAT考试阅读部分的参考书,同学们可以在此查找到在文章中最难以理解的句子的详细解释(包括中文翻译和语法分析)。</p>\0112020-04-14 03:34:33.147457+00:00" "48\011蒋勋\011Jiang Xun/Gei Qing Nian Yi Zhu Jia De Xin (48)\011Gei Qing Nian Yi Zhu Jia De Xin - Jiang Xun\011PDF\0112009-05-15 03:58:45+00:00\011给青年艺术家的信\011-散文随笔,!论说性.实用.成长\01115793505\011<p class=\"description\">“如果我们的生活被塞满了,我们还有空间给美吗?如果我们的心灵没有空闻,美如何进来呢?”作者在这里想给青年艺术家传达的是,使一个人走向艺术的,不是严肃的训练,而是一些身体深处挥之不去的感觉记忆。作者重视的是“感官”,是打开视觉,开启听觉,是用全身心去感觉气味,重量、质地、形状和色彩,是在成为艺术家之前,先为自己准备丰富的人的感觉。作者指出,真正的艺术家,不会将自己置于安逸、固定的生活环境,他必须不断地“出走”,只有这样,才能永葆活泼、健康而年轻的生命力,才能领路创造的愉悦,感受到真正的美。</p>\0112020-04-14 03:34:33.147457+00:00" "49\011刘洁修\011Liu Ji Xiu/Yi Yu Cheng Yu Yuan Liu Da Ci Dian (49)\011Yi Yu Cheng Yu Yuan Liu Da Ci D - Liu Ji Xiu\011PDF\0112009-12-15 04:02:20+00:00\011汉语成语源流大辞典\011-工具书.辞典\011368722918\011<p class=\"description\">《汉语成语源流大辞典》作者刘洁修曾荣获**辞书学会“辞书事业终身成就奖”,**出版工作者协会“第十四届**图书奖”。《汉语成语源流大辞典》以考源求实为重点,“源”“流”并重,对汉语成语的词义、词形、用法在历代文献中的演变进行了严谨而细致的梳理。全书共收主条、次主条、副条及部分成语缩略语形式总计逾五万条。主词条中先引语源书证,并释义;后对历代文献中的不同词形分做次主条及副条列出,并引书证;对于成语的古义、今义,本义、比喻义等做分别义项处理。《汉语成语源流大辞典》具有很强的学术性、工具性与资料性。</p>\0112020-04-14 03:34:33.147457+00:00" "50\011Feynman, Richard P.\011Richard P. Feynman/Bie Nao Le ,Fei Man Xian Sheng (50)\011Bie Nao Le ,Fei Man Xian Sheng - Richard P. Feynman\011PDF\0112005-01-15 04:02:28+00:00\011别闹了,费曼先生\011!论说性.理论.历史.传记,@人物.科学家\0113070563\011<p class=\"description\">费曼一生幽默机智、几近顽童的行止,与其在理论物理方面的成就齐名。本书与《你管别人怎么想》同享盛名,全书没有难懂的科学知识,在一件件新鲜事背后,隐然透露着人性最接近自然的本质。<br>费曼先生得过诺贝尔奖,是近代最伟大的理论科学家之一。他是加州理工学院物理系教授,任教约四十年。三○年代在普林斯顿大学毕业后,随即被征召加入制造原子弹的曼哈坦计画。费曼先生生性好奇,在严密的保安系统监控之下,他以破解安全锁自娱。取得机密资料以后,留下字条告诫政府小心安全。而他的鲜事也传颂一时。他爱坐在上空酒吧内做科学研究,当那酒吧以妨碍风化遭到取缔时,他上法庭辩护。他的森巴鼓造诣很高,巴西嘉年华会需要领队贵宾,本来预定的大明星珍那露露布丽姬妲缺席,临时由费曼先生取代,他引以自豪。<br>他一向特立独行,以不负责闻名。领了诺贝尔奖之后,同事维斯可夫和他打赌十元费曼先生会坐上某一领导位置,但费曼先生在一九七六年拿到那十元。事实上,费曼先生几乎从不参与加州理工学院内,如:经费、升等、设备等任何行政工作。别人可能看他自私。但对他,这是他保卫自己创造自由的方式。他甚至连续五年努力辞去美国国家科学院院士的荣誉位置,因为选举其它院士的责任颇困扰他。而他也可能是历史上唯一被按摩院请去画裸体画、在酒吧厕所内与醉鬼大打出手的科学家。他曾经跟爱因斯坦和波耳等大师讨论物理问题,也曾在赌城中与职业赌徒研究输赢的机率!</p>\0112020-04-15 16:39:48.516486+00:00" "51\011Allen, David\011David Allen/Gao Ding I_Wu Ya Gong Zuo De Yi Zhu (51)\011Gao Ding I_Wu Ya Gong Zuo De Yi - David Allen\011PDF\0112010-05-15 04:12:58+00:00\011搞定I:无压工作的艺术\011!论说性.实用.成长.效率\01124919188\011<p class=\"description\">《搞定1:无压工作的艺术》讲述在今天这个信息量和工作量倍增的世界,一些老的工作方法已经失去了效用。每一个职场中人或多或少都有这样的体验:压力重重;太多事情都理不清头绪;似乎永远被各种任务和目标追赶着……时间管理大师戴维·艾伦将指导你走出规划和执行工作中的泥沼,通向高效、轻松的彼岸。要想让事情井井有条,关键便是——从容、放松。<br>点击链接进入英文版:<br>Getting Things Done: The Art of Stress-Free Productivity</p>\0112020-04-14 03:34:33.147457+00:00" "52\011Allen, David\011David Allen/Gao Ding II_Ti Sheng Gong Zuo Yu She (52)\011Gao Ding II_Ti Sheng Gong Zuo Y - David Allen\011PDF\0112012-02-15 04:13:00+00:00\011搞定Ⅱ:提升工作与生活效率的52项原则\011!论说性.实用.成长.效率\01115142360\011<p class=\"description\">《搞定2:提升工作与生活效率的52项原则》内容简介:在戴维·艾伦的《搞定1:无压工作的艺术》中,他推出了具有突破意义的GTD时间管理系统。他曾在美国各地以及微软、L.L.Bean公司、美国海军等顶级机构举办研讨班传授这些方法。现在,这位个人效率大师要了解读者效率受阻的原因,为我们展示如何更轻松、高效、无压力地做好各种工作和生活上的事情,如何集中精力、发挥创造力、让目标更明晰;鼓励我们去采取行动,在各方面的活动中实现更轻松的控制,以最佳状态工作和生活。<br>《搞定2》以艾伦备受欢迎的电子通讯为基础,为我们提出了52个原则:<br>●为发挥创造力清空大脑<br>●集中注意力<br>●创建有效果的结构<br>●采取行动让工作运转起来<br>整体而言,艾伦提出的简单而高效的原则可以帮助我们精通效率这个心智游戏,即他所谓的“管理你的心智,而不是你的时间”。通过这本书,我们可以学会如何把武术家平静的关注方式拿来,应对每天面对的选择、决策、以及新情况。每一项原则——从“放慢速度以提升速度”到“未来目标的价值,在于它当前培育的变化”,都在鼓励我们用新颖的方法去思考自己的行为、遇到的阻力和具备的优势。</p>\0112020-04-14 03:34:33.147457+00:00" "53\011Allen, David\011David Allen/Gao Ding III_Ping Heng Gong Zuo Yu S (53)\011Gao Ding III_Ping Heng Gong Zuo - David Allen\011PDF\0112012-02-15 04:13:01+00:00\011搞定Ⅲ:平衡工作与生活的艺术\011!论说性.实用.成长.效率\01145731269\011<p class=\"description\">自2001年出版以来,《搞定1》(Getting Things Done)就成了 “划时代的商业自助书”。它大胆提出高效工作的新概念,被译成28种语言,令数百万读者深受鼓舞:不但企业家、大学教授、软件工程师、士兵、音乐家、学生和牧师纷纷采用;“GTD时间管理系统”还在网站、博客和软件应用领域风行一时。<br>《搞定1》开宗明义,直接针对现代社会的快节奏作出回应。戴维·艾伦多年传授GTD系统,从热心实践者那里得到大量反馈,发现GTD系统蕴含深刻,用途广泛,远非简单的“个人组织系统”所能涵盖。应读者的热切期盼,艾伦继《搞定1》《搞定2》后又推出这本《搞定3》,揭示了把这套方法应用到广阔的生活和工作中的全方位效果,对GTD原则和用途的进一步深化。《搞定1》是一本基础读物、一本简单的手册,《搞定3》则是一幅路线图,它对GTD原则和用途的深化,可以进一步增强你应对工作和生活的能力,可以帮你定位现在的生活,为你指明抵达目的地的方向。工作和生活两全其美并非遥不可及。<br>《搞定3》前3章认真分析了GTD现象、它的本质以及它何以在全世界迅速发展。其余部分探讨了自我管理的两个核心层面:第4-9章探讨了时间组织的掌控要素:捕捉、澄清、组织、深思、行动、应用等;第10-17章分析了摆正视角、长短期目标、宗旨的问题。书后还添加了描述GTD法基本模型的附录,包括:未完成事务提示清单、自然式计划模式、项目规划提示清单、掌控工作流程 每周回顾、工作流程图和关注层面等。<br>平衡工作和生活的关键全看获得掌控、摆正视角,即理顺日常生活中方方面面的事务,把它们在逐层分步的目标和抱负水平上各有安置。不管摆在面前的任务是即刻回复一封电子邮件、安排几天后的全家出游,还是考虑长远的退休计划,你都可以用《搞定3》传授的方法,胸有成竹地作出决定,得心应手地处理事务。</p>\0112020-04-14 03:34:33.147457+00:00" "54\011Adler, Mortimer J. & Doren, Charles Van\011Mortimer J. Adler/Ru He Yue Du Yi Ben Shu (54)\011Ru He Yue Du Yi Ben Shu - Mortimer J. Adler\011EPUB\0112004-01-15 13:20:09+00:00\011如何阅读一本书\011!论说性.实用.成长.阅读\011550463\011<p class=\"description\">每本书的封面之下都有一套自己的骨架,作为一个分析阅读的读者,责任就是要找出这个骨架。一本书出现在面前时,肌肉包着骨头,衣服包裹着肌肉,可说是盛装而来。读者用不着揭开它的外衣或是撕去它的肌肉来得到在柔软表皮下的那套骨架,但是一定要用一双X光般的透视眼来看这本书,因为那是了解一本书、掌握其骨架的基础。<br>《如何阅读一本书》初版于1940年,1972年大幅增订改写为新版。不懂阅读的人,初探阅读的人,读这本书可以少走冤枉路。对阅读有所体会的人,读这本书可以有更深的印证和领悟。</p>\0112020-04-14 03:34:33.147457+00:00" "57\011Dershowitz, Alan M.\011Alan M. Dershowitz/Fa Lu Chuang Shi Ji (57)\011Fa Lu Chuang Shi Ji - Alan M. Dershowitz\011EPUB\0112011-11-15 13:20:14+00:00\011法律创世记\011!论说性.理论.科学.社会科学.法律\011548081\011<p class=\"description\">被视为记载“上帝话语”的圣经,数千年来启发并激励了无数人的心智。然而,圣经《创世记》中众人耳熟能详的故事,却经常让人心生质疑。为什么该隐妒火攻心,杀了弟弟却安然无恙?为什么上帝发个脾气,无数的生灵就得溺毙?为什么亚伯拉罕杀子未遂却受赞扬?这到底有没有天理?<br>德肖维茨在课堂里提出这些问题,并给予解答。他精心挑选了十则最为引人争议的《创世记》故事,旁征博引历代典籍文献,从法律的视角提供了精辟的见解。他不仅评论故事主人翁的行为,甚至毫不避讳地讨论上帝的行为。由此,德肖维茨告诉我们,《创世记》故事里令人难以捉摸的公理正义原则是如何启迪与发展出了现代法律。</p>\0112020-04-14 03:46:31.326109+00:00" "59\011Asimov, Isaac\011Isaac Asimov/Yin He Di Guo 2_Ji Di Yu Di Guo (59)\011Yin He Di Guo 2_Ji Di Yu Di Guo - Isaac Asimov\011EPUB\0112012-06-15 13:20:16+00:00\011银河帝国2:基地与帝国\011!虚构类.小说.科幻,[篇幅].系列\011423056\011<p class=\"description\">经过近200年的励精图治,基地征服了银河边缘众多王国,势力不断向银河中心蔓延,终于与银河帝国产生正面冲突。<br>帝国虽已江河日下,仍旧拥有银河中最庞大的舰队。帝国最后一位野心勃勃的年轻将军注意到了银河边缘的异动,他率领的星际舰队所向披靡,即将占领基地。只剩下谢顿当年的预言,成为基地最后一线希望……<br>然而,纵使是天机算尽的谢顿,也无法预料到整个银河的历史,竟然会因为一个来历不明的人而改变……<br>敬请阅读《银河帝国2:基地与帝国》。<br>-------------------------------------<br>系列简介:<br>人类历史上最好看的系列小说(Best All-Time Novel Series)—世界SF小说协会,1966年,俄亥俄州<br>《银河帝国》,您正要翻开的这本书,一直被认为是人类想象力的极限,人类历史上最有趣迷人的故事,讲述人类未来两万年的历史:<br>在一个由2500万个住人行星构成的帝国里,有一个叫谢顿的年轻人,他出生在一个偏远的星球;32岁那年,他带着改变帝国命运的秘密,来到全银河的首都:川陀行星。从他面见帝国皇帝的那一刻起,战争的硝烟、末日的恐惧,立刻弥漫到整个银河……<br>出版六十年来,本书对人类的太空探索、世界局势、前沿经济学理论、好莱坞电影产生了深远的影响;更随着它的读者成长为各行各业的领袖(如美国总统小布什、诺贝尔奖获得者克鲁格曼、美国宇航局航天员、本·拉登),而将这种影响渗透到人类文化的方方面面。<br>翻开本书,开始享受“人类历史上最好看的系列小说(Best All-Time Novel Series)”。</p>\0112020-04-14 03:34:33.147457+00:00" "64\011Asimov, Isaac\011Isaac Asimov/Yin He Di Guo 3_Di Er Ji Di (64)\011Yin He Di Guo 3_Di Er Ji Di - Isaac Asimov\011EPUB\0112012-07-15 13:46:17+00:00\011银河帝国3:第二基地\011!虚构类.小说.科幻,[篇幅].系列\011392260\011<p class=\"description\">未来一千年,人类在银河系的历史,哈里·谢顿已经全盘设计好了。只要一切都按照“谢顿计划”进行,一千年之后,就是永久的太平盛世。<br>计划顺利进行了三百多年,银河某处,突然出现了一个自称“骡”的突变异种,他能轻易操纵人心,竟然在短短几年之内就征服了整个银河。基地也被攻下,“谢顿计划”似乎已经失败……<br>不过,古老的传说中,似乎还有另一个基地,它在银河的另一端,在群星的尽头……<br>为了彻底征服银河,骡必须要攻下第二基地。经过五年的漫长搜索,他终于发现了第二基地的下落。但骡找到的,真的是第二基地吗?这成为银河历史上最大的悬案……<br>----------------------------------------------------------------------<br>系列简介:<br>人类历史上最好看的系列小说(Best All-Time Novel Series)—世界SF小说协会,1966年,俄亥俄州<br>《银河帝国》,您正要翻开的这本书,一直被认为是人类想象力的极限,人类历史上最有趣迷人的故事,讲述人类未来两万年的历史:<br>在一个由250 0万个住人行星构成的帝国里,有一个叫谢顿的年轻人,他出生在一个偏远的星球;32岁那年,他带着改变帝国命运的秘密,来到全银河的首都:川陀行星。从他面见帝国皇帝的那一刻起,战争的硝烟、末日的恐惧,立刻弥漫到整个银河……<br>出版六十年来,本书对人类的太空探索、世界局势、前沿经济学理论、好莱坞电影产生了深远的影响;更随着它的读者成长为各行各业的领袖(如美国总统小布什、诺贝尔奖获得者克鲁格曼、美国宇航局航天员、本·拉登),而将这种影响渗透到人类文化的方方面面。<br>翻开本书,开始享受“人类历史上最好看的系列小说(Best All-Time Novel Series)”。</p>\0112020-04-14 03:34:33.147457+00:00" "65\011Asimov, Isaac\011Isaac Asimov/Yin He Di Guo 4_Ji Di Qian Zou (65)\011Yin He Di Guo 4_Ji Di Qian Zou - Isaac Asimov\011EPUB\0112012-08-15 13:46:20+00:00\011银河帝国4:基地前奏\011!虚构类.小说.科幻,[篇幅].系列\011562040\011<p class=\"description\">银河帝国12020年,正是繁荣盛世。哈里·谢顿,一个刚满32岁的年轻数学家,发表了一篇纯粹是数学理论的论文,设想一门还并不存在的学科“心理史学”。为什么一夜之间,这篇论文竟然成为万众瞩目的焦点?<br>帝国皇帝要召见他,帝国宰相要追杀他,夺权者要绑架他……各种来历不明的人物纷纷现身,谢顿被迫在首都星球川陀不断逃亡。<br>他最后会落入何人之手?而谢顿原本认为心理史学只是一门空谈理论的学科,为什么又决定将毕生精力投入心理史学的实际应用?甚至,他立志用这门学科来拯救人类,拯救这个由2500万个住人行星构成的庞大帝国……<br>敬请阅读《银河帝国4:基地前奏》。本书讲述的是心理史学诞生的传奇故事……<br>-------------------------------------<br>系列简介:<br>人类历史上最好看的系列小说(Best All-Time Novel Series)—世界SF小说协会,1966年,俄亥俄州<br>《银河帝国》,您正要翻开的这本书,一直被认为是人类想象力的极限,人类历史上最有趣迷人的故事,讲述人类未来两万年的历史:<br>在一个由2500万个住人行星构成的帝国里,有一个叫谢顿的年轻人,他出生在一个偏远的星球;32岁那年,他带着改变帝国命运的秘密,来到全银河的首都:川陀行星。从他面见帝国皇帝的那一刻起,战争的硝烟、末日的恐惧,立刻弥漫到整个银河……<br>出版六十年来,本书对人类的太空探索、世界局势、前沿经济学理论、好莱坞电影产生了深远的影响;更随着它的读者成长为各行各业的领袖(如美国总统小布什、诺贝尔奖获得者克鲁格曼、美国宇航局航天员、本·拉登),而将这种影响渗透到人类文化的方方面面。<br>翻开本书,开始享受“人类历史上最好看的系列小说(Best All-Time Novel Series)”。</p>\0112020-04-14 03:34:33.147457+00:00" "66\011Asimov, Isaac\011Isaac Asimov/Yin He Di Guo 5_Mai Xiang Ji Di (66)\011Yin He Di Guo 5_Mai Xiang Ji Di - Isaac Asimov\011EPUB\0112012-08-01 13:46:20+00:00\011银河帝国5:迈向基地\011!虚构类.小说.科幻,[篇幅].系列\011602931\011<p class=\"description\">我是哈里·谢顿,银河帝国首相、川陀大学教授、心理史学研究计划主持人、《银河百科全书》执行主编、基地的创造者。<br>这些头衔都相当动听,然而我经常自问,倘若一切可以重新来过,我是否还愿意为此付出无比惨痛的代价?<br>回顾我这一生,自30岁开始,半个世纪以来,大约每隔十年,便出现一次重大的转折……<br>-------------------------------------------------------------------------<br>系列简介:<br>人类历史上最好看的系列小说(Best All-Time Novel Series)—世界SF小说协会,1966年,俄亥俄州<br>《银河帝国》,您正要翻开的这本书,一直被认为是人类想象力的极限,人类历史上最有趣迷人的故事,讲述人类未来两万年的历史:<br>在一个由250 0万个住人行星构成的帝国里,有一个叫谢顿的年轻人,他出生在一个偏远的星球;32岁那年,他带着改变帝国命运的秘密,来到全银河的首都:川陀行星。从他面见帝国皇帝的那一刻起,战争的硝烟、末日的恐惧,立刻弥漫到整个银河……<br>出版六十年来,本书对人类的太空探索、世界局势、前沿经济学理论、好莱坞电影产生了深远的影响;更随着它的读者成长为各行各业的领袖(如美国总统小布什、诺贝尔奖获得者克鲁格曼、美国宇航局航天员、本·拉登),而将这种影响渗透到人类文化的方方面面。<br>翻开本书,开始享受“人类历史上最好看的系列小说(Best All-Time Novel Series)”。</p>\0112020-04-14 03:34:33.147457+00:00" "67\011Asimov, Isaac\011Isaac Asimov/Yin He Di Guo _Ji Di (67)\011Yin He Di Guo _Ji Di - Isaac Asimov\011EPUB\0112012-03-15 19:21:03+00:00\011银河帝国:基地\011!虚构类.小说.科幻,[篇幅].系列,🏆开智推荐.开智正典.00寻找智慧\011391853\011<p class=\"description\">人类蜗居在银河系的一个小角落——太阳系,在围绕太阳旋转的第三颗行星上,生活了十多万年之久。<br>人类在这个小小的行星(他们称之为“地球”)上,建立了两百多个不同的行政区域(他们称之为“国家”),直到地球上诞生了第一个会思考的机器人。<br>在机器人的帮助下,人类迅速掌握了改造外星球的技术,开启了恢弘的星际殖民运动;人类在银河系如蝗虫般繁衍扩张,带着他们永不磨灭的愚昧与智慧、贪婪与良知,登上了一个个荒凉的星球,并将银河系卷入漫长的星际战国时代,直至整个银河被统一,一个**超过2500万个住人行星、疆域横跨十万光年、总计数兆亿人口的庞大帝国崛起——银河帝国。<br>一个微妙的转折发生在银河帝国建国后的12020年。哈里·谢顿,这个刚满32岁的年轻数学家,开创了“心理史学”,这门学科能用数学公式准确推演全人类的未来——“预言”从此成为一门可以信任的科学,人类由此可以看见未来。<br>谢顿的第一个预言是:虽然毫无征兆,但已存在一万两千年之久的银河帝国即将灭亡。<br>一时间,银河震动,帝国飘摇;皇帝、宰相、夺权者、反叛星球,各方势力立刻剑拔弩张,人类银河时代最伟大的传奇就此开启……</p>\0112020-04-14 03:34:33.147457+00:00" "124\011Zweig, Stefan\011Stefan Zweig/Ren Lei De Qun Xing Shan Yao Shi (124)\011Ren Lei De Qun Xing Shan Yao Sh - Stefan Zweig\011PDF\0112009-06-15 14:00:28+00:00\011人类的群星闪耀时\011!论说性.理论.历史.传记\01116183245\011<p class=\"description\">《人类的群星闪耀时:十四篇历史特写(增订版)》是以德国菲舍尔出版社1 997年最新版《人类的群星闪耀时》为底本,在对译者的以前两个中译版本(三联版及广西师大版)修订的基础上,补译了茨威格的另外两篇历史特写——《西塞罗》和《威尔逊的梦想和失败》。增订版于2。09年6月北京第1版第1次印刷,《人类的群星闪耀时:十四篇历史特写(增订版)》为第1版第2次印刷.译者在“第2次印刷”的版本中又做了不少修改。</p>\0112020-04-14 03:34:33.147457+00:00" "131\011王力\011Wang Li/Gu Dai Yi Yu (Di Yi Ce ) (131)\011Gu Dai Yi Yu (Di Yi Ce ) - Wang Li\011PDF\0111999-05-15 13:59:31+00:00\011古代汉语(第一册)\011※教材,!论说性.实用.语言.古汉语\01114352946\011<p class=\"description\">古代汉语这一门课程,过去在不同的高等学校中,在不同的时期内,有种种不同的教学内容。有的是当做历代文选来教,有的是当做文言语法来教,有的把它讲成文字、音韻、训诂,有的把它讲成汉语史。目的要求是不一致的。<br>    经过1958年的教育革命,大家进一步认识到教学必须联系实际,许多高等学校都重新考虑古代汉语的教学内容,以为它的目的应该是培養学生阅读古书的能力,而要达到这一个目的,必须既有感性知识,又有理性知识。必须把文选的阅读与文言语法、文字、音韻、训诂等理论知识密切结合起来,然后我们的教学才不是片面的从而提高古代汉语的教学效果。至于汉语史,则应该另立一科;汉语史是理论课,古代汉语是工具课,目的要求是不相同的。<br>   北京大学在1959年进行了古代汉语教学的改革,把文选、常用词、古汉语通论三部分结合起来,取得了较好的教学效果。此外还有许多高等学校都以培養阅读古书能力作为目的,改进了古代汉语的教学。<br>    北京大学1959年度的古代汉语讲义只印了上中两册,1960年经过了又一次改革,另印了上中下三册,都没有公开发行。讲义编写主要由王力负责,参加工作的有林焘、唐作藩、郭锡良、曹先擢、吉常宏、赵克勤、陈绍鹏。此外,北京大学**语言文学系语言专业1957级同学也参加了1960年度的古代汉语中下两册的文選部分的编写工作,研究生陈振寰、进修教师徐朝华也参加了上册的部分编写工作。<br>    1961年5月,高等学校文科教材编選计划会议开过后,成立了古代汉语编写小组,决定以北京大学古代汉语讲义为基础並参考各校古代汉语教材进行改写,作为汉语言文学专业的教科书。<br>    编写小组集中了北京大学、北京师範大学、**人民大学、南开大学、兰州大学古代汉语教学方面一部分人力,分工合作,进行编写。<br>   本书除由主编王力负责全盘工作外,编写小组内部再分为文選组和常用词通论组。文選组由萧璋负责,常用词通论组由马汉麟负责。具体分工如下:<br>    文選部分执笔人:<br>    萧璋(北京师範大学)刘益之(**人民大学)<br>    许嘉璐(北京师範大学)赵克勤(北京大学)<br>    常用词部分执笔人:<br>    王力(北京大学)吉常宏(北京大学)<br>    通论部分(包括绪论及附録)执笔人:<br>    马汉麟(南开大学)郭锡良(北京大学)<br>    祝敏徹(兰州大学)<br>    编写小组的任务是艰钜的。北京大学的讲义只是初稿,距离公开出版的要求尚远。这次几个学校的同志在一起合作,除了肯定文選、常用词、通论三部分结合的总原则以外,一方面充分利用了北京大学原有的成果,另一方面又在很大程度上加以必要的修改和補充。文選部分更换了一些篇目,重写了解题和说明,特别是在注释方面作了很大的变动。常用词部分变更了一些体例和解释,並且随着文選的更换而改变了词修的次序。通论的章节和内容也都作了很大的变动。<br>    每一篇稿子都经过组内讨论,组外传观並签注意见,最后由主编人决定。有些比较重要的问题还经过全体讨论。我们自始至终坚持了这种讨论方式;我们认为这样做可以集思广益,更好地贯徹百家争鸣的精神和发挥集体主义精神,从而进一步提高了书的质量。<br>    1962年1月,上册讨论稿出版。在这个时候,召集了座谈会,出席者有丁声树、朱文叔、吕叔湘、洪诚、殷孟伦、陆宗达、张清常、冯至、魏建功诸先生,姜亮夫先生也提出了详细的书面意见。会议共开了一个星期,主要是讨论上册的内容,但最后也对中下册的内容交换了意见。<br>    上册讨论稿分寄各高等学校和有关单位后,陆续收到了回信。有些是集体的意见,有些是专家个人的意见。从1962年1月下旬起,我们开始进行上册的修订工作,同时考虑到,上中下三册应该压缩为上下两册,以便更适合于教学计划的要求。体例上也作了改动,把文選各篇的说明移作注解,或迳行删去。我们的修订工作除充分地吸收专家们和各校的意见,进行必要的修改外,还趁此机会再深入发现问题,改写了不少的地方,上册增加了一个单元,其他单元也进行了部分的改写。因此,直到同年7月底,才算把上册修订完毕。<br>    本书全稿曾请叶圣陶先生审阅。<br>    总起来说,这一本《古代汉语》上册已经四易其稿。我们知道其中的缺点还是很多的;如果有若干成续的话,那是和党的领导分不開的,也是和全国专家们以及担任古代汉语的教师同志们的鼓励和帮助分不開的。我们编写小组虽然祇有九个人,但是这一本书的编成,则有千百人的劳动在内。我们谨在这里向曾提宝贵意见的专家们和同志们表示深切的谢忱。<br>    最后,我们希望读者特别是从事古代汉语教学工作的同志们随时不吝赐教,让我们能够根据广大群众的意见来修订这本书,使它逐渐趋于完善。<br>                                                        王力<br>                                                      1962年7月</p>\0112020-04-15 09:07:32.819197+00:00" "134\011Russell, Bertrand\011Bertrand Russell/Xi Fang Zhe Xue Shi (Xia Juan ) (134)\011Xi Fang Zhe Xue Shi (Xia Juan ) - Bertrand Russell\011EPUB\0112003-01-15 13:59:33+00:00\011西方哲学史(下卷)\011!论说性.理论.哲学,!论说性.理论.历史.专史.文化史.哲学史\011505169\011<p class=\"description\">罗素的《西方哲学史》的特点在于,它是在哲学与社会生活的相互作用和密切联系中讲述西方哲学发展的历史,而不是单纯地讲西方哲学自身的发展,不是讲纯哲学概念或哲学问题的发展。罗素认为,哲学是社会政治生活的一部分,哲学家的学说不是个人孤立思考的结果。社会环境和已往各种哲学学说对一种哲学学说的产生都有很大的影响。一方面,哲学家们是时代的社会环境和政治制度的结果。另一方面,他们又是后来的社会政治制度形成的原因之。因而,他在本书中,总是试图把每一个哲学家看作是时代的产物。又考察他们对时代的影响。例如,为了使读者更容易理解斯多葛派和伊壁鸠鲁派的哲学,本书比较详细地介绍了希腊化时代的社会历史情况;为了使读者更好地理解经院哲学的产生和发展,本书介绍了从5—15世纪基督教发展的知识。<br>本书的特点之二是,从时代的社会生活与哲学的关系出发,对本书中所要论述的哲学家的选择与一般的哲学史有所区别。他不是完全以哲学本身的优越性为选择标准,而是更加看重哲学家的学说对时代社会生活影响的大小。有些政治家和诗人,由于他们对哲学发展有比较大的影响,在本书中也占有一席地位。<br>本书的第三个特点是,罗素是个著名的哲学家,他对哲学和社会生活有独特的认识,对哲学发展史有独到的理解,本书由他一个独自写出,可以很清楚地看出他对西方哲学史发展的线索,及哲学史发展过程中的统一性的认识。</p>\0112020-04-14 03:34:33.147457+00:00" "135\011Russell, Bertrand\011Bertrand Russell/Xi Fang Zhe Xue Shi (Shang Juan ) (135)\011Xi Fang Zhe Xue Shi (Shang Juan - Bertrand Russell\011EPUB\0110101-01-01 00:00:00+00:00\011西方哲学史(上卷)\011!论说性.理论.哲学,!论说性.理论.历史.专史.文化史.哲学史\011551806\011<p class=\"description\">罗素的《西方哲学史》的特点在于,它是在哲学与社会生活的相互作用和密切联系中讲述西方哲学发展的历史,而不是单纯地讲西方哲学自身的发展,不是讲纯哲学概念或哲学问题的发展。罗素认为,哲学是社会政治生活的一部分,哲学家的学说不是个人孤立思考的结果。社会环境和已往各种哲学学说对一种哲学学说的产生都有很大的影响。一方面,哲学家们是时代的社会环境和政治制度的结果。另一方面,他们又是后来的社会政治制度形成的原因之。因而,他在本书中,总是试图把每一个哲学家看作是时代的产物。又考察他们对时代的影响。例如,为了使读者更容易理解斯多葛派和伊壁鸠鲁派的哲学,本书比较详细地介绍了希腊化时代的社会历史情况;为了使读者更好地理解经院哲学的产生和发展,本书介绍了从5—15世纪基督教发展的知识。 <br>本书的特点之二是,从时代的社会生活与哲学的关系出发,对本书中所要论述的哲学家的选择与一般的哲学史有所区别。他不是完全以哲学本身的优越性为选择标准,而是更加看重哲学家的学说对时代社会生活影响的大小。有些政治家和诗人,由于他们对哲学发展有比较大的影响,在本书中也占有一席地位。<br>本书的第三个特点是,罗素是个著名的哲学家,他对哲学和社会生活有独特的认识,对哲学发展史有独到的理解,本书由他一个独自写出,可以很清楚地看出他对西方哲学史发展的线索,及哲学史发展过程中的统一性的认识。</p>\0112020-04-14 03:34:33.147457+00:00" "137\011​Bonsignore, John J.\011John J.  Bonsignore/Fa Lu Zhi Men (137)\011Fa Lu Zhi Men - John J.  Bonsignore\011EPUB\0112007-01-15 14:01:28+00:00\011法律之门\011!论说性.理论.科学.社会科学.法律\0113140178\011<p class=\"description\">《法律之门》(第8版)是美国各大学法学院比较通用的一本法律教科书。也可以看作是一部英美法的微型百科全书。《法律之门》(第8版)旨在展示美国的法律过程,不只通过描述,而且通过让读者置身于你来我往的争辩之中,而强调法律讲论的重要意义,则只在部分意义上是规则的一种功能。《法律之门》(第8版)的资料安排意在让每一观点都能与其他观点相比对。每一文章和案例都提供了探索人的紧张关系的机会。正是以这种教学法,《法律之门》(第8版)模拟了美国法律过程的实际运作,打开了进入法律和社会的大门。《法律之门》(第8版)所提供的法律规则、原则和案例,都是社会科学、历史和文学等知识语境中的论辩和讨论素材。</p>\0112020-04-14 03:46:31.326109+00:00" "144\011Einstein, Albert\011Albert Einstein/Xia Yi Yu Yan Yi Xiang Dui Lun Qian (144)\011Xia Yi Yu Yan Yi Xiang Dui Lun - Albert Einstein\011EPUB\0112006-01-15 14:00:23+00:00\011狭义与广义相对论浅说\011!论说性.理论.科学.自然科学.物理\0111371868\011<p class=\"description\">本书分三个部分:狭义相对论、广义相对论、关于整个宇宙的一些考虑,外加一个附录。本书以最简单、最明了的方式介绍了相对论的主要概念,并大体按照相对论实际创生的次序和联系来叙述。</p>\0112020-04-20 14:48:04.155695+00:00" "146\011张红岩\011Zhang Hong Yan/Ci Yi Lei Ji _GRECi Hui (146)\011Ci Yi Lei Ji _GRECi Hui - Zhang Hong Yan\011PDF\0112008-08-01 16:16:23+00:00\011词以类记:GRE词汇\011!论说性.实用.考试.GRE.词汇\01140350828\011<p class=\"description\">GRE单词由于数量众多,在一场考试中出现的概率也有高有低,人们能够获得的数据就是以往考试中出现的次数,即词频。词频同然重要,但近些年被神话得太多,甚至误导一些同学,以致于大家把精力都放在那些所谓高频词上面。实际上,对考试分数真正起作用的词汇不是那些词频超过6、7次的单词,那些词基本上大家都会,而恰恰是那些出现过l、2次的单词。它们是构成分数区分度的同汇。<br>本书只标出普通词和高频词,而不是传统的用角标来标注词频从而让考生产生对单词不必要的歧视。背诵后期尤其希望对高频(词频≥1)词汇共4841个有比较清晰的认识,具体请参考附录,附录中以蓝色标注出了这些高频词汇。<br>为精确理解词义而编排的英文解释对一些单词比较适用,但对于很多名词或汉语含义非常清晰明确的词汇,再配以英文解释有蛇足之嫌,顾而本书只对需要快速精确理解词义的词汇给出了英文解释。<br>本书根据GRE词汇考核的特点设计了反义词连线题,凡是在正文词条中给出反义词的词汇学习者应该特别注意,背诵的时候需要重点记忆。在某些List的练习中也会有词义连线题。另有一些词对于阅读理解和填空有重要的意义,我们特地设计了选词填空练习,来帮助大家快速应用刚学习的单词,实验结果表明,经过练习的词汇,记忆效果更清晰、更长久。<br>本书因按照学科和意群分类,所采用分类多为原创,大家想找寻某个单词恐怕不能一下子翻到,这时请使用附录中的词汇表来检索。为提高纸面的表现效率,此词汇表和前面提到的词频表为同一个附录。</p>\0112020-04-14 03:34:33.147457+00:00" "147\011司马迁 & 韩兆琦\011Si Ma Qian/Shi Ji _1 Ben Ji (147)\011Shi Ji _1 Ben Ji - Si Ma Qian\011PDF\0112010-07-15 16:33:49+00:00\011史记:1 本纪\011!论说性.理论.历史\01175961915\011<p class=\"description\">我国第一部纪传体通史,开创纪传体史学、传记文学之先河<br>这套《史记》是汇《史记》的校勘、注释、翻译、评论于一身的集众萃之作,是目前注释最详实精辟、译文最准确流畅,讲解最深刻扎实的《史记》全本全注全译读本。本书包含了全部十个史表,是目前最全的《史记》注译本。注释在传统解释的基础上,吸收近百年来新的成果,参考考古发现,修正了传统解释的错误,釐清了模糊不清的问题,提出了有见地的新说,还收集引证了大量古今人对《史记》及其中的人、事的评论,更加鲜活坚实。本书对《史记》逐篇做了题解,使初读者能抓住其大纲要旨,并引发读者进一步思考。本书采用硬面精装,装帧精美,阅读、收藏两宜,以满足最广大《史记》爱好者的需要。</p>\0112020-04-14 03:34:33.147457+00:00" "148\011布雷姆尼斯\011Bu Lei Mu Ni Si/Yao Yong Zhi Wu (148)\011Yao Yong Zhi Wu - Bu Lei Mu Ni Si\011PDF\0112005-08-15 13:53:22+00:00\011药用植物\011-工具书.图鉴\01192297026\011<p class=\"description\">《经典图鉴珍藏:药用植物》收录了世界各地700余种药用植物,配有1500余幅彩色照片,在作者的精心编纂下,使读者能轻松地掌握识别各种药用植物的知识。《经典图鉴珍藏:药用植&gt;》向读者介绍了书中收录的每种药用植物的重要特征、生态环境、自然分布情况等知识,并介绍了判断其采集的部位、调制的方法以及在烹调、医药、美容、熏香、工艺品等不同方面的运用。书后还附有简明扼要的专有名词解释。</p>\0112020-04-14 03:34:33.147457+00:00" "149\011Coombes, Allen J.\011Allen J. Coombes/Shu (149)\011Shu - Allen J. Coombes\011PDF\0112005-08-15 13:53:25+00:00\011树\011!论说性.理论.科学.自然科学.生物\011101144219\011<p class=\"description\">《经典图鉴珍藏:树》向养植物爱好者介绍了书中收录的每种树木的重要特征、生态环境、自然分布情况等,并介绍了如何记录观察到的树木、对树木进行分类的简单明了的方法。书后还附有简明扼要的专有名词解释。</p>\0112020-04-14 04:05:59.614619+00:00" "150\011大卫·阿尔德顿\011Da Wei _A Er De Dun/Ming Quan (150)\011Ming Quan - Da Wei _A Er De Dun\011PDF\0112007-05-15 13:53:25+00:00\011名犬\011!论说性.理论.科学.自然科学.生物\01190091139\011<p class=\"description\">《名犬:全世界300多种名犬的彩色图鉴》内容简介:世界著名的名犬图鉴,收录了世界上300多种名犬,叙述了犬类的演变,如何辨别犬种和选犬,如何照顾爱犬,以及参加名犬展示的注意事项等。全面、简洁的文字论述,加上1000余幅色彩绚丽的插图和特征标注,凸显每种名犬的外观特征、体型、体重、毛皮特色、个性习性,让读者既能全面了解犬类的基础知识,又能轻松掌握简易有效的鉴别技巧。<br> 权威性的文字论述、精美清晰的图片及系统化的编排体例,使《名犬:全世界300多种名犬的彩色图鉴》具有丰富的知识性和鉴赏价值,成为了解、鉴别名犬最为全面、精确的工具书。</p>\0112020-04-14 04:05:59.614619+00:00" "151\011科林·哈里森\011Ke Lin _Ha Li Sen/Niao (151)\011Niao - Ke Lin _Ha Li Sen\011PDF\0112003-03-15 13:53:26+00:00\011鸟\011!论说性.理论.科学.自然科学.生物\011119410129\011<p class=\"description\">《鸟:全世界800多种鸟的彩色图鉴》对所收录的每种鸟均有深入浅出的文字描述和附有注解的照片,使其重要特征和特性跃然纸上。《鸟:全世界800多种鸟的彩色图鉴》向鸟类爱好者介绍了书中收录的每种鸟的外型、习性、飞行特征、羽色、食性、鸣声等知识,并介绍了其地理分布、辨认要点等知识。书后还附有简明扼要的专有名词解释。</p>\0112020-04-14 04:05:59.614619+00:00" "152\011王玉生 & 蔡岳文\011Wang Yu Sheng/Nan Fang Yao Yong Zhi Wu (152)\011Nan Fang Yao Yong Zhi Wu - Wang Yu Sheng\011PDF\0112011-04-15 13:53:27+00:00\011南方药用植物\011-工具书.图鉴\01193754707\011<p class=\"description\">内容简介<br>《南方药用植物图鉴》向您提供了558种基本的南方中草药的原生形态、药用部位与植物特征,一共约2000幅彩色图片;不同药昌的成长环境、主要出产地介绍;每一种药物的拉丁文学名、中文称谓及主要别名,确保药物认知的科学性;详尽的植物特征描述、对各种不同药用植物运行鉴定和区分的基本知识和直观方法;具体的药用部位、细节或制材指引;各种药物的性味归经、主治功能以及主要适用病症;南药使用的宜、忌以及慎用原则;详尽的目录、拉丁文药名索引以及中文药名索引。<br>《南方药用植物图鉴》收录了**南方常见药用植物共558种,分别隶属128科,389属,按恩格勒植物分类系统的科,属,顺序,采取图文对照形式进行编排.每种药用植物由文字和彩色照片两部分组成.文字描述内容包括:植物特征,药用部们,性味归经,功能主治,主要万分,有法用量,使用注意以及植物的生长环境等.应当说明是由于受《南方药用植物图鉴》篇幅所限,对同一药用植物的不同药用部位,则只介绍较常用的药用部位的性味功能等。《南方药用植物图鉴》收录的每一种药用植物鉴别知识的同时能轻松学到有关植物的药用知识。<br>编辑推荐<br>《南方药用植物图鉴》借助了大量精美的专业图片,力求全面和准确地表现南方常见药用植物的形态特点和鉴别特征,展现其美丽与多姿多态。因此,这本学术严谨的教学参考书同时具有较高的观赏性。</p>\0112020-04-14 03:34:33.147457+00:00" "155\011Lorenz, Konrad\011Konrad Lorenz/Suo Luo Men Wang De Zhi Huan _Yu Ni (155)\011Suo Luo Men Wang De Zhi Huan _Y - Konrad Lorenz\011PDF\0111998-07-01 16:14:46+00:00\011所罗门王的指环:与鸟兽虫鱼的亲密对话\011!论说性.理论.科学.自然科学.生物\0119852871\011<p class=\"description\">为什么书名叫《所罗门王的指环》呢?劳伦兹说明:“根据史料记载,所罗门王能够和鸟兽虫鱼交谈。这事我也会,虽然我比不上所罗门王,能够和所有的动物交谈,而只能和几种我特别熟悉的动物交谈。这点我承认,但是我可不需要魔戒的帮助,这点他就不如我啦!要不是靠魔戒的力量,就算是最亲密的宠物,老国王也听不懂它在说些什么。而且,当他不再拥有魔戒时,他甚至会硬着心肠对待动物。所罗门王是在盛怒中将魔戒抛得老远的,那是因为有一只夜莺向他泄密:他那九百九十九位爱妃之中,有一位爱上了年轻的小伙子。<br>“所罗门王可能是极聪明,也可能极笨,这点我不敢说。照我看来,需要用到魔戒才能和动物交谈,未免太逊色了一点。活泼泼的生命完全无须借助魔法,便能对我们述说至美至真的故事。大自然的真实面貌,比起诗人所能描摹的境界,更要美上千百倍。”</p>\0112020-04-14 03:46:31.326109+00:00" "157\011克来格\011Ke Lai Ge/Ji Qi Ren Xue Dao Lun (157)\011Ji Qi Ren Xue Dao Lun - Ke Lai Ge\011PDF\0112006-06-15 16:37:47+00:00\011机器人学导论\011※教材,!论说性.理论.科学.形式科学.计算机科学.人工智能\01118175607\011<p class=\"description\">《机器人学导论》(原书第3版)系统讲解机器人学的理论知识,主要内容包括:机器人操作臂的几何性质,引起操作臂运动的力和力矩,与操作臂机械设计有关的问题和控制方法,机器人编程方法等。《机器人学导论》(原书第3版)曾作为美国斯坦福大学机器人学导论的教材,经过两次修订。书中还包括大量分级的习题和编程作业,适合教学参考。<br>  《机器人学导论》(原书第3版)可作为高等院校相关专业的教材或参考书,也可供相关技术人员参考。</p>\0112020-04-17 08:37:20.120076+00:00" "159\011Zweig, Stefan\011Stefan Zweig/Ren Lei Qun Xing Shan Yao Shi (159)\011Ren Lei Qun Xing Shan Yao Shi - Stefan Zweig\011EPUB\0112009-02-14 16:00:00+00:00\011人类群星闪耀时\011!论说性.理论.历史.传记\0119114663\011<p class=\"description\">《人类群星闪耀时》是号称“历史上最好的传记作家”茨威格的作品,选取了十个决定世界历史的瞬间:千年帝国拜占庭的陷落、亨德尔奇迹的精神复活、老年歌德热恋的悲歌、滑铁卢的最后一刻……铁血杀伐与惊世绝情、盛世哀歌与帝国神话等让人心灵震撼的历史场景中,一个个历史上的**精英们登上了舞台。</p>\0112020-04-14 03:34:33.147457+00:00" "160\011Koenig, Andrew\011Andrew Koenig/CXian Jing Yu Que Xian (160)\011CXian Jing Yu Que Xian - Andrew Koenig\011EPUB\0111991-11-14 16:00:00+00:00\011C陷阱与缺陷\011!论说性.实用.编程.C\0112234223\011<p class=\"description\">《C陷阱与缺陷》作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作《C陷阱与缺陷》的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。</p>\0112020-04-14 03:34:33.147457+00:00" "161\011Bloom, Harold\011Harold Bloom/Ru He Du ,Wei Shi Yao Du (161)\011Ru He Du ,Wei Shi Yao Du - Harold Bloom\011EPUB\0112011-01-01 16:00:00+00:00\011如何读,为什么读\011!论说性.实用.成长.阅读\011302138\011<p class=\"description\">《如何读,为什么读》是布鲁姆在年近古稀时出版的一本个人化的导读著作,这位阅读大师、智慧老人、经典的经典读者为我们正本清源,梳理西方不朽作品,谈论他从童年到晚年喜爱的诗、小说、戏剧。《如何读,为什么读》可以说是《西方正典》的互补版,已读过《西方正典》的读者,可在这里再探索和再发现西方正典,以及再接受布鲁姆的批评能量;初次接触布鲁姆的读者,则可从这里开始,踏上寻访和分享西方正典的旅程。</p>\0112020-04-14 03:34:33.147457+00:00" "162\011Martin, Robert C.\011Robert C. Martin/Dai Ma Zheng Ji Zhi Dao (162)\011Dai Ma Zheng Ji Zhi Dao - Robert C. Martin\011EPUB\0112009-12-31 16:00:00+00:00\011代码整洁之道\011!论说性.实用.编程.工程实践\01118959670\011<div><p class=\"description\">软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码整洁之道》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。<br>《代码整洁之道》阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。</p>" "<p class=\"description\">  点击链接进入新版: 编码整洁之道:专业程序员的行为准则(英文版)</p></div>\0112020-04-14 03:34:33.147457+00:00" "163\011Dobelli, Rolf\011Rolf Dobelli/Qing Xing Si Kao De Yi Zhu (163)\011Qing Xing Si Kao De Yi Zhu - Rolf Dobelli\011EPUB\0112013-01-01 16:00:00+00:00\011清醒思考的艺术\011!论说性.实用.成长.思维.逻辑思维\0113590582\011<p class=\"description\">《清醒思考的艺术:你最好让别人去犯的52种思维错误》作者罗尔夫·多贝里讲到自己曾与一名美国友人分享发现——小概率事件往往具有颠覆全局的破坏力。这个美国人后来据此写了一本书成为大畅销书,此书就是《黑天鹅》,那个美国人叫纳西姆·塔勒布。于是,多贝里决定自己写一本书,这就是在德国率先超越《乔布斯传》登上畅销书排行榜榜首的《清醒思考的艺术:你最好让别人去犯的52种思维错误》。<br>人是生而自由的,却无往不在枷锁之中。用这句话来描述人类为思维错误所累的情形,也十分恰当精到。思维错误、认知陷阱就像是伴生于人类,细追究起来无处不在,不经意之时又无迹可寻。难道人们注定就要戴着无形的“有色眼镜”看世界吗?不,人们可以思考自己的思考,拒绝思考被污染。<br>《清醒思考的艺术:你最好让别人去犯的52种思维错误》作者博览群书,以显微镜般的观察发现人们常犯的思维错误,并一一列出。当明白了错误的思维是如何发生后,人们就有可能远离思维陷阱。如果说成功者与失败者之间的差距在于思维方式,那么,熟知了思考方式的隐形陷阱,人们就会犯错更少,从而离成功更近。<br>《清醒思考的艺术:你最好让别人去犯的52种思维错误》作者既有锐利的观察,又有出色的讲故事能力。他引用生活趣事、名人轶事、历史故事、爱情关系、人际关系、投资之道、心理实验等论述,生动形象而又具体雄辩地指出思维之错的错在哪里,并且还给出了纠正的办法。人性的弱点在本书中完全呈现,是在自己的反思中进步,还是抓住别人的弱点进攻,全在于读者自己的理解和决定。</p>\0112020-04-19 00:49:35.723807+00:00" "164\011Hunt, Andy\011Andy Hunt/Cheng Xu Yuan De Si Wei Xiu Lian _K (164)\011Cheng Xu Yuan De Si Wei Xiu Lia - Andy Hunt\011EPUB\0112010-12-09 16:00:00+00:00\011程序员的思维修炼:开发认知潜能的九堂课\011!论说性.实用.编程,🏆开智推荐.开智正典.05计算机科学\0112412996\011<p class=\"description\">本书解释了为什么软件开发是一种精神活动,思考如何解决问题,并就开发人员如何能更好地开发软件进行了评论。书中不仅给出了一些理论上的答案,同时提供了大量实践技术和窍门。<br>本书供各层次软件开发人员阅读。</p>\0112020-04-14 03:34:33.147457+00:00" "165\011Graham, Paul\011Paul Graham/Hei Ke Yu Hua Jia _Gui Gu Chuang Ye (165)\011Hei Ke Yu Hua Jia _Gui Gu Chuan - Paul Graham\011EPUB\0112011-04-14 16:00:00+00:00\011黑客与画家:硅谷创业之父Paul Graham文集\011-散文随笔,!论说性.实用.编程,🏆开智推荐.开智正典.05计算机科学\011900403\011<p class=\"description\">本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。<br>本书适合所有程序员和互联网创业者,也适合一切对计算机行业感兴趣的读者。</p>\0112020-04-14 03:34:33.147457+00:00" "169\011韦晓亮\011Wei Xiao Liang/Xin GREXie Zuo Lun Zheng Lun Ju Su (169)\011Xin GREXie Zuo Lun Zheng Lun Ju - Wei Xiao Liang\011EPUB\0112009-10-14 16:00:00+00:00\011新GRE写作论证论据素材大全\011!论说性.实用.考试.GRE\011543627\011<p class=\"description\">《GRE写作论证论据素材大全》特点:针对性:突破**考生GMAT写作瓶颈,迅速提高写作能力。全面性:覆盖GMAT ISSUE写作所有话题涉及的英文论证和论据素材,解决面对ISSUE题目无话可说,无例可举的困境。指导性:汇集数年教学经验和写作教学成果,指导考生有的放矢地高效备考。<br>权威性:精选《经济学家》、《时代周刊》、《科学》、《大英百科全书》、《微软百科全书》等权威刊物文章。<br>文化性:囊括西方教育、法律、文化、科技、历史等领域,使考生在备考同时翱翔于思辨的海洋和历史文化长河之中。</p>\0112020-04-14 03:34:33.147457+00:00" "171\011Subramaniam, Venkat & Hunta, Andy\011Venkat Subramaniam/Gao Xiao Cheng Xu Yuan De 45Ge Xi G (171)\011Gao Xiao Cheng Xu Yuan De 45Ge - Venkat Subramaniam\011EPUB\0112010-01-01 16:00:00+00:00\011高效程序员的45个习惯\011!论说性.实用.编程\011951444\011<p class=\"description\">“书中‘切身感受’的内容非常有价值——通过它我们可以做到学有所思,思有所悟,悟有所行。”<br>——Nathaniel T. Schutta,《Ajax基础教程》作者<br>“此书通过常理和经验,阐述了为什么你应该在项目中使用敏捷方法。最难得的是,这些行之有效的实战经验,竟然从一本书中得到了。”<br>——Matthew Johnson,软件工程师<br>十年来,软件行业发生了翻天覆地的变化。敏捷方法大行其道,测试和测试驱动开发在很多开发人员的工作中扮演着重要的角色。作为一名程序员,你应该培养怎样的素质,方能对多变的环境应对自如,始终立于不败之地?<br>本书简明实用、见解深刻,总结了高效程序员在开发过程中的45个个人习惯、**观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等5个方面积极修炼。通过学习这些内容,养成这些好的习惯,你可以极大地提升自己的编程实力,更快速、更可靠地交付更高质量的软件,从而成为真正的高效程序员。</p>\0112020-04-14 03:34:33.147457+00:00" "172\011胡适\011Hu Shi/Zen Yang Du Shu (172)\011Zen Yang Du Shu - Hu Shi\011EPUB\0111936-06-14 16:00:00+00:00\011怎样读书\011!论说性.实用.成长.阅读\0111294567\011<p class=\"description\">目录:<br>胡适之——怎样读书<br>蔡元培——我的读书经验<br>胡适之——为什么读书<br>陈钟凡——读什么书<br>王云五——怎样读书<br>林语堂——读书的艺术<br>章衣萍——我的读书的经验<br>马寅初——余对于读书之经验<br>樊仲云——怎样读书<br>江问渔——对于读书问题的我见<br>潘仰尧——读书方法<br>杨卫玉——读书与兴趣<br>李公朴——读书实验<br>朱光潜——谈读书<br>丰子恺——我的苦学经验<br>章衣萍——作文与读书<br>童行白——怎样提高读书的速率和功率<br>欧元怀——读书生活的三多法<br>傅东华——我的读书经验<br>钱歌川——读书与书籍<br>曹聚仁——我的读书经验<br>孙福熙——读书并非为黄金<br>张素民——我的读书经验谈<br>程瑞霖——个人读书的经验<br>林语堂——怎样研究英文<br>黄鑑村——怎样学习日语<br>陈彬龢——如何读报</p>\0112020-04-14 03:34:33.147457+00:00" "173\011Pitkin, Walter B.\011Walter B. Pitkin/Xue Xi De Yi Zhu (173)\011Xue Xi De Yi Zhu - Walter B. Pitkin\011EPUB\0111991-11-14 16:00:00+00:00\011学习的艺术\011!论说性.实用.成长.学习\011381883\011<div><p class=\"description\">本书的目的旨在帮助以下几种人:<br>  结束学校生涯、希望尽快独立进入更高知识领域的青年男女;<br>  感到年轻时在学习的艺术方面缺少正确训练、渴望克服这一缺陷的人;<br>  在用脑方面接受过良好训练、发现可利用的业余时间很多,并渴望尽可能利用这些时间的成年人;<br>  为了过上体面生活、面临职业和生存转型的人。</p>" ...))
  calibredb-candidates()
  calibredb-list()
  funcall-interactively(calibredb-list)
  call-interactively(calibredb-list record nil)
  command-execute(calibredb-list record)
  helm-M-x-execute-command(calibredb-list)
  helm-execute-selection-action-1()
  helm-execute-selection-action()
  helm-internal((((name . "Emacs Commands history") (candidates . #f(compiled-function () #<bytecode 0x4137f741>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic)) ((name . "Emacs Commands") (candidates . #f(compiled-function () #<bytecode 0x79b3b441>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history)
  apply(helm-internal ((((name . "Emacs Commands history") (candidates . #f(compiled-function () #<bytecode 0x4137f741>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap ...))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () ... #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic)) ((name . "Emacs Commands") (candidates . #f(compiled-function () #<bytecode 0x79b3b441>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap ...))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () ... #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history))
  helm((((name . "Emacs Commands history") (candidates . #f(compiled-function () #<bytecode 0x4137f741>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic)) ((name . "Emacs Commands") (candidates . #f(compiled-function () #<bytecode 0x79b3b441>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history)
  apply(helm ((((name . "Emacs Commands history") (candidates . #f(compiled-function () #<bytecode 0x4137f741>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap ...))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () ... #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic)) ((name . "Emacs Commands") (candidates . #f(compiled-function () #<bytecode 0x79b3b441>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap ...))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () ... #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history))
  helm(:sources (((name . "Emacs Commands history") (candidates . #f(compiled-function () #<bytecode 0x4137f741>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic)) ((name . "Emacs Commands") (candidates . #f(compiled-function () #<bytecode 0x79b3b441>)) (keymap keymap (keymap (13 . helm-confirm-and-exit-minibuffer)) keymap (21 . helm-M-x-universal-argument) keymap (127 . delete-backward-char) (27 keymap (13 . helm-cr-empty-string)) (C-return . helm-cr-empty-string) keymap (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 . hydra-helm/body) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x410be165>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x40da416d>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort helm-fuzzy-highlight-matches) (volatile) (match . identity) (redisplay . identity) (nomark) (coerce . helm-symbolify) (header-line . "C-j: Describe this command (keeping session)") (must-match) (group . helm-command) (match-dynamic))) :prompt "M-x " :buffer "*helm M-x*" :history helm-M-x-input-history)
  helm-M-x-read-extended-command([eww-buffer-select connection-failed diary-included-files epg-context-signers reftex-untie-multifile-symbols 0 HanziPen\ TC eww-handle-link input-method-verbose-flag bongo-file-names epg--status-VALIDSIG pdf-cache-pagelinks semantic-tag-write-list-slot-value duplicate olp gnus-info-set-score Sarasa\ Fixed\ K biblio--selection-insert gnus-agent-group-covered-p nsm-permanent-host-settings brackets-after-symbol bongo-collapsed-header-format web-mode-warning-face org-sidebar-name--cmacro cl-print--preprocess matched-string tls-success ellipses wicon bibtex-SuppCollection 0 post-deadline bongo-mode-line-previous-icon-11 shr-parse-image-data omt gnus-tree-buffer message-kill-actions nnheader-translate-file-chars container \' :name-match org-archive-subtree-hierarchical--org-struct-subtree :contents rx-trans-forms names--convert-defalias alert--log-disable-messaging not-at-beginning-of-line define-mode-local-override expired bongo-player-update-total-time ...])
  helm-M-x(nil)
  funcall-interactively(helm-M-x nil)
  call-interactively(helm-M-x nil nil)
  command-execute(helm-M-x)

Emacs: GNU Emacs 26.3 (build 1, x86_64-apple-darwin19.3.0, Carbon Version 162 AppKit 1894.3) of 2020-03-07

Any other info needed?

Invalid library

Here's the configuration

(use-package calibredb
  :straight t
  :config
  (setq calibredb-root-dir "/storage/library")
  (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
  (setq calibredb-ref-default-bibliography (concat (file-name-as-directory calibredb-root-dir) "muhbib.bib")))

And after reading through other people's closed issues of the same problem, I've tried theses suggestion from you, here are the results

  1. Did you try to use calibre to generate an empty library and read by calibredb.el? If it is ok, maybe your metadata was broken.

The new library still gets INVALID LIBRARY error.

  1. If it still not ok, try to find that if .sqliterc is existed or not? Try to delete .sqliterc and try again. Post the content of .sqliterc here.

There is no .sqliterc in my home directory

  1. If it still no ok, post your calibre version and sqlite version. I will check if the version problems.

My Calibre is on 5.14.0_1 and my sqlite is on 3.35.5

My operating system is FreeBSD 13.0.

My sql-sqlite-program is "/usr/local/bin/sqlite3" and my calibredb-program is "calibredb".

Here's my metadata.db just in case,
metadata.db.gz

use calibre content server as backend

These are examples to fetch the books from the calibre content server, and setting metadata on them.
The advantages are:

  • the server should load the database in memory only once
  • setting metadata should also be fast, because we are not spawning a (python) process on each call
(defun calibredb-server-url (&optional path)
  (if calibredb-server-host
      (concat calibredb-server-host ":" calibredb-server-port (or path ""))
    ;; start a calibre-server managed by emacs and set url..
    ;; NOTE: calibre-server has to be started with `--enable-local-write'
    ;; ...
    ))

;; fetch library data
(request
  (calibredb-server-url "/interface-data/books-init")
  :params '(("library_id" . calibredb-library-id)
            ("sort" . (concat (symbol-name calibredb-sort-by) "."
                              (symbol-name calibredb-order))))
  :parser 'json-read
  :complete (lambda (&rest args)
              (setq-local calibredb-data (plist-get args :data))))

;; parse the books candidates
(let ((candidates '()))
  (dolist (book (alist-get 'metadata calibredb-data))
    (push (let* ((book-id (car book))
                 (book-data (cdr book)))
            `((:id ,book-id)
              (:author-sort ,(alist-get 'author_sort book-data))
              (:book-dir nil)
              (:book-name ,(alist-get 'sort book-data))
              (:book-format ,(downcase (seq-elt (alist-get 'formats book-data) 0)))
              (:book-pubdate ,(alist-get 'pubdate book-data))
              (:book-title ,(alist-get 'title book-data))
              (:file-path nil)
              (:tag ,(string-join (alist-get 'tags book-data) ","))
              (:size ,(alist-get 'size book-data))
              (:comment ,(alist-get 'comments book-data))
              (:ids ,(alist-get 'identifiers book-data))
              (:series ,(alist-get 'series_index book-data))
              (:lang_code ,(seq-elt (alist-get 'languages book-data) 0))))
          candidates))
  candidates)

;; send request to update metadata
(defun calibredb-set-metadata--tags-server (id tags)
  (request
    (calibredb-server-url (concat "/cdb/set-fields/" id "/books"))
    :type "POST"
    :headers '(("Content-Type" . "application/json"))
    :data (json-encode `(("changes" . (("tags" . ,tags)))))
    :complete (lambda (&rest args)
                (prin1 (plist-get args :data)))))

Re-order columns

Hello,

Thank you for the package! Makes my workflow much simpler. How can I re-order the columns when I launch calibredb (the default buffer seems to be calibredb-search)? I was unable to find any documentation about re-ordering the columns.

Thank you!

Implement opds feature

I am working on opds feature that supports online opds libraries.

It is developed in opds branch and will be merged into develop then in master branch in the future.

Feel free to test and feedback.

Configs in README no longer works in org-ref v3?

Hello! Some configs on org-ref support in README doesn't seem to work in the latest version of org-ref.

Below is my config - works fine with me for now.

(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)
(add-to-list 'bibtex-completion-bibliography calibredb-ref-default-bibliography))
; (setq org-ref-get-pdf-filename-function 'org-ref-get-mendeley-filename)
(setq bibtex-completion-pdf-field "file"))

`calibredb-fetch-and-set-metadata-by-isbn` does not work on Windows

Executing that command by pressing s i and then enter the isbn number in *calibre-search* buffer results in the following output in *Messages* buffer.

D:/program/calibre/Calibre/fetch-ebook-metadata.exe -p "Google" --isbn "978-0-321-39952-6" 2>/dev/null
D:/program/calibre/Calibre/fetch-ebook-metadata.exe -p "Amazon.com" --isbn "978-0-321-39952-6" 2>/dev/null

"No metadata retrieved from sources"

Executing that command in Windows Powershell leads to the following error:

PS D:\program\calibre\Calibre> D:/program/calibre/Calibre/fetch-ebook-metadata.exe -p "Google" --isbn "978-0-321-39952-6" 2>/dev/null
out-file : Could not find a part of the path 'D:\dev\null'.
At line:1 char:1
+ D:/program/calibre/Calibre/fetch-ebook-metadata.exe -p "Google" --isb ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (:) [Out-File], DirectoryNotFoundException
    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

Removing the 2>/dev/null/ leads to correct behavior:

PS D:\program\calibre\Calibre> D:/program/calibre/Calibre/fetch-ebook-metadata.exe -p "Google" --isbn "978-0-321-39952-6"
Title               : Computer Graphics: Principles and Practice
Author(s)           : John F. Hughes & Andries van Dam & Morgan McGuire & James D. Foley & David Sklar & Steven K. Feiner & Kurt Akeley
Publisher           : Addison-Wesley
Tags                : Computers, Software Development & Engineering, Computer Graphics
Languages           : eng
Published           : 2014-01-15T12:18:30.570926+00:00
Identifiers         : google:OVpsAQAAQBAJ, isbn:9780321399526
Comments            : <p>Computer Graphics: Principles and Practice, Third Edition,remains the most authoritative introduction to the field. The first edition, the original “Foley and van Dam,” helped to define computer graphics and how it could be taught. The second edition became an even more comprehensive resource for practitioners and students alike. This third edition has been completely rewritten to provide detailed and up-to-date coverage of key concepts, algorithms, technologies, and applications.</p>
...

I guess the 2>/dev/null/ is not platform-independent?

add support for custom columns

It would be nice to have suppport for custom columns, with the ability to

  • create new columns
  • set the column value
  • show the columns in calibredb-show-mode

I am guessing that the columns are an additional table in the sql database? So they would be custom sql queries.
This is what I am currently using to manage a "read" column to track read status, but it is slow because it calls the cli.

(defun calibredb-args (&key quotes &rest args)
  (apply #'format `(,(s-repeat (length args) (if quotes "'%s' " "%s "))
                    ,@args)))


(defun calibredb-add-column (label name datatype)
  (calibredb-command
   :command "add_custom_column"
   :library (calibredb-arg-library 'local)
   :input (calibredb-args label name datatype)))

(defun calibredb-arg-library (&optional use-local)
  (format "--library-path %s"
          (if-let (url (and (null use-local)
                            (calibredb-check-server)))
              url
            (calibredb-root-dir-quote))))

(defun calibredb-add-read-column ()
  (let* ((columns (calibredb-command
                   :command "custom_columns"
                   :library (calibredb-arg-library 'local)))
         (cols (split-string columns "\n")))
    (unless (stringp (catch 'match
                       (mapc (lambda (x) (and (string-prefix-p "read_status" x)
                                         (throw 'match x))) cols)))
      (calibredb-add-column "read_status" "Read Status" "bool"))))

(defun calibredb-check-server ()
  (and (bound-and-true-p calibredb-server-host)
       (bound-and-true-p calibredb-server-port)
       (processp (ignore-errors (open-network-stream "" nil calibredb-server-host calibredb-server-port)))
       (concat "http://" calibredb-server-host ":" calibredb-server-port)))

(defun calibredb-set-custom (column id value)
  (calibredb-command
   :library (calibredb-arg-library 'local)
   :command "set_custom"
   :input (calibredb-args :key nil column id value)))

(defun calibredb-candidate-key (key &optional candidate)
  (car (alist-get :id
                  (caar (or candidate
                            (calibredb-find-candidate-at-point))))))

(defun calibredb-set-read (&optional candidate)
  (calibredb-set-custom "read_status"
                        (calibredb-candidate-key :id)
                        "true"))

(defun calibredb-set-custom-at-point (col val)
  (interactive "sColumn: \nsValue: ")
  (calibredb-set-custom col
                        (calibredb-candidate-key :id)
                        val))

;; keybinding for doom
(map! :map calibredb-show-mode-map
      :nv "C" #'calibredb-set-custom-at-point)

Invalid Library

I get Invalid Library error when doing calibredb-library-list
image

image

(use-package calibredb
  :custom
  (sql-sqlite-program "~/bin/sqlite/sqlite3")
  (calibredb-root-dir "~/Documents/Calibre")
  (calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
  (calibredb-program "/usr/bin/calibredb")
  (calibredb-library-alist '(("~/Documents/Calibre")
                             ("~/org/articles")
                             ("~/org/books"))))

Lisp Error when `calibre-show-metadata`

calibredb works fine for me, it opens the *calibre-search* buffer. However, when I try to invoke calibre-show-metadata, I get a lisp error:

Debugger entered--Lisp error: (wrong-type-argument listp #("284 Communicating Sequential Processes            ..." 0 4 (face calibredb-id-face id "284") 4 54 (face calibredb-title-face) 55 60 (face calibredb-format-face mouse-face calibredb-mouse-face help-echo "Filter with this format" keymap (keymap (mouse-1 . calibredb-format-mouse-1))) 61 72 (face calibredb-date-face mouse-face calibredb-mouse-face help-echo "Filter with this date" keymap (keymap (mouse-1 . calibredb-date-mouse-1))) 73 78 (author "Hoare" face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author: Hoare" keymap (keymap (mouse-1 . calibredb-author-mouse-1))) 79 88 (author " C. A. R." face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author:  C. A. R." keymap (keymap (mouse-1 . calibredb-author-mouse-1))) 90 92 (tag "''" face calibredb-tag-face mouse-face calibredb-mouse-face help-echo "Filter with this tag: ''" keymap (keymap (mouse-1 . calibredb-tag-mouse-1))) 95 97 (face calibredb-comment-face)))
  calibredb-getattr((#("284 Communicating Sequential Processes            ..." 0 4 (face calibredb-id-face id "284") 4 54 (face calibredb-title-face) 55 60 (face calibredb-format-face mouse-face calibredb-mouse-face help-echo "Filter with this format" keymap (keymap (mouse-1 . calibredb-format-mouse-1))) 61 72 (face calibredb-date-face mouse-face calibredb-mouse-face help-echo "Filter with this date" keymap (keymap (mouse-1 . calibredb-date-mouse-1))) 73 78 (author "Hoare" face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author: Hoare" keymap (keymap (mouse-1 . calibredb-author-mouse-1))) 79 88 (author " C. A. R." face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author:  C. A. R." keymap (keymap (mouse-1 . calibredb-author-mouse-1))) 90 92 (tag "''" face calibredb-tag-face mouse-face calibredb-mouse-face help-echo "Filter with this tag: ''" keymap (keymap (mouse-1 . calibredb-tag-mouse-1))) 95 97 (face calibredb-comment-face)) ((:id "284") (:author-sort "Hoare, C. A. R.") (:book-dir "C. A. R. Hoare/Communicating Sequential Processes ...") (:book-name "Communicating Sequential Proces - C. A. R. Hoare") (:book-format "pdf") (:book-pubdate "0101-01-01 00:00:00+00:00") (:book-title "Communicating Sequential Processes") (:file-path "d:/program/calibre/Calibre Portable/Calibre Librar...") (:tag "''") (:size "0.77") (:comment "''") (:ids "''") (:publisher "''") (:series "''") (:lang_code "''") (:last_modified "2022-09-05 04:37:55.947628+00:00"))) :id)
  calibredb-show-metadata()
  funcall-interactively(calibredb-show-metadata)
  call-interactively(calibredb-show-metadata record nil)
  command-execute(calibredb-show-metadata record)
  execute-extended-command(nil "calibredb-show-metadata" nil)
  funcall-interactively(execute-extended-command nil "calibredb-show-metadata" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

I am using Emacs 30.0.50 on Windows, with built-in sqlite module.
My calibredb package version is 20220612.
I do have an external sqlite3 installed, and its version is 3.40.1.
Any idea what leads to this problem?

Books exported to kindle without cover

Hello there!
First of all, awesome library, congratulations! :)

I followed what you suggested here to send ebooks to kindle

I'm on macOS.

λ (print calibredb-device-dir)
/Volumes/Kindle/documents/

When I send it via calibre (regular app) it sends with cover, when I use calibredb-export-dispatch e E e it sends the ebook without the cover.

Do you know if I'm doing something wrong?

Thanks!

wrong-type-argument stringp nil

Getting this error from calibredb-find-counsel, haven't had a ton of luck in debugging it. This error occurs for anything I pick.

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  calibredb-get-file-path(nil t)
  calibredb-find-file((((:id "3505") (:author-sort "Magazine, Logic") (:book-dir "Logic Magazine/Logic Magazine Issue 16_ Clouds (35...") (:book-name "Logic Magazine Issue 16_ Clouds - Logic Magazine") (:book-format "epub,pdf") (:book-pubdate "2022-04-09 21:21:15+00:00") (:book-title "Logic Magazine Issue 16: Clouds") (:file-path "~/calibre/Logic Magazine/Logic Magazine Issue 16_ ...") (:tag "") (:size "28.19") (:comment "") (:ids "") (:publisher "") (:series "Logic Magazine") (:lang_code "eng") (:last_modified "2022-04-14 13:02:33.602668+00:00"))))
  (lambda (candidate) (calibredb-find-file (cdr candidate)))((#("3505Logic Magazine Issue 16: Clouds               ..." 0 4 (face calibredb-id-face id "3505") 4 54 (face calibredb-title-face) 55 60 (face calibredb-format-face mouse-face calibredb-mouse-face help-echo "Filter with this format" keymap (keymap (mouse-1 . calibredb-format-mouse-1))) 61 72 (face calibredb-date-face mouse-face calibredb-mouse-face help-echo "Filter with this date" keymap (keymap (mouse-1 . calibredb-date-mouse-1))) 73 81 (author "Magazine" face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author: Magazine" keymap (keymap (mouse-1 . calibredb-author-mouse-1))) 82 88 (author " Logic" face calibredb-author-face mouse-face calibredb-mouse-face help-echo "Filter with this author:  Logic" keymap (keymap (mouse-1 . calibredb-author-mouse-1)))) ((:id "3505") (:author-sort "Magazine, Logic") (:book-dir "Logic Magazine/Logic Magazine Issue 16_ Clouds (35...") (:book-name "Logic Magazine Issue 16_ Clouds - Logic Magazine") (:book-format "epub,pdf") (:book-pubdate "2022-04-09 21:21:15+00:00") (:book-title "Logic Magazine Issue 16: Clouds") (:file-path "~/calibre/Logic Magazine/Logic Magazine Issue 16_ ...") (:tag "") (:size "28.19") (:comment "") (:ids "") (:publisher "") (:series "Logic Magazine") (:lang_code "eng") (:last_modified "2022-04-14 13:02:33.602668+00:00"))))
  ivy-call()
  ivy-read("Pick a book: " (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :sort nil :caller calibredb-ivy-read)
  calibredb-ivy-read()
  calibredb-find-counsel()
  funcall-interactively(calibredb-find-counsel)
  call-interactively(calibredb-find-counsel nil nil)
  command-execute(calibredb-find-counsel)

INVALID LIBRARY

My config looks like this:

(use-package calibredb
  :defer t
  :init
  (autoload 'calibredb "calibredb")
  :config
  (setq calibredb-root-dir "~/Nextcloud/Books/Calibre/")
  (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
  (setq calibredb-library-alist '(("~/Nextcloud/Books/Calibre/")))
  (setq calibredb-format-all-the-icons t))

I can confirm that calibredb and sqlite3 are in system path (\usr\bin). metadata.db exists in the directory ~/Nextcloud/Books/Calibre/, which is both calibredb-root-dir and calibredb-library for me. I have also looked at the suggestions given at #6 and #15 . I still get INBALID LIBRARY error when I try to run calibredb-find-counsel.

Windows 10 - Issue with spaces in path?

M-x calibredb fails with:

Backtrace:

Debugger entered--Lisp error: (error "Error: ‘calibredb-query’ can’t query \"c:/Users/micha/Calibre Library/metadata.db\". switching to its error buffer")
  error("Error: `calibredb-query' can't query \"%s\". switching to its error buffer" "c:/Users/micha/Calibre Library/metadata.db")
  (if (= 0 (call-process-shell-command (format "%s -separator %s -newline %s -list -nullvalue '' -noheader %s \"%s\"" sql-sqlite-program calibredb-sql-separator calibredb-sql-newline (shell-quote-argument (expand-file-name calibredb-db-dir)) sql-query) nil (list out-buf t))) (save-current-buffer (set-buffer out-buf) (buffer-string)) (switch-to-buffer out-buf) (goto-char (point-min)) (error "Error: `calibredb-query' can't query \"%s\". switching to its error buffer" (expand-file-name calibredb-db-dir)))
  (if (not (file-exists-p calibredb-db-dir)) (message "calibredb-query: calibredb-db-dir is nil! calibredb-query won't work without it.") (if (= 0 (call-process-shell-command (format "%s -separator %s -newline %s -list -nullvalue '' -noheader %s \"%s\"" sql-sqlite-program calibredb-sql-separator calibredb-sql-newline (shell-quote-argument (expand-file-name calibredb-db-dir)) sql-query) nil (list out-buf t))) (save-current-buffer (set-buffer out-buf) (buffer-string)) (switch-to-buffer out-buf) (goto-char (point-min)) (error "Error: `calibredb-query' can't query \"%s\". switching to its error buffer" (expand-file-name calibredb-db-dir))))
  (let ((out-buf " *calibredb-query-output*")) (if (get-buffer out-buf) (progn (kill-buffer out-buf))) (if (not (file-exists-p calibredb-db-dir)) (message "calibredb-query: calibredb-db-dir is nil! calibredb-query won't work without it.") (if (= 0 (call-process-shell-command (format "%s -separator %s -newline %s -list -nullvalue '' -..." sql-sqlite-program calibredb-sql-separator calibredb-sql-newline (shell-quote-argument (expand-file-name calibredb-db-dir)) sql-query) nil (list out-buf t))) (save-current-buffer (set-buffer out-buf) (buffer-string)) (switch-to-buffer out-buf) (goto-char (point-min)) (error "Error: `calibredb-query' can't query \"%s\". switching to its error buffer" (expand-file-name calibredb-db-dir)))))
  calibredb-query("\nWITH d AS (\n    SELECT books.id, books.id as book, format, uncompressed_size, name\n    FROM books\n    LEFT JOIN data\n    ON books.id = data.book\n    WHERE data.book IS NULL\n    UNION\n    SELECT *\n   ...")
  (let* ((query-result (calibredb-query (concat calibredb-query-string (cond ((eq calibredb-sort-by 'id) (let nil " ORDER BY id")) ((eq calibredb-sort-by 'title) (let nil " ORDER BY title")) ((eq calibredb-sort-by 'author) (let nil " ORDER BY author_sort")) ((eq calibredb-sort-by 'format) (let nil " ORDER BY format")) ((eq calibredb-sort-by 'date) (let nil " ORDER BY last_modified")) ((eq calibredb-sort-by 'pubdate) (let nil " ORDER BY pubdate")) ((eq calibredb-sort-by 'tag) (let nil " ORDER BY tag")) ((eq calibredb-sort-by 'size) (let nil " ORDER BY uncompressed_size")) ((eq calibredb-sort-by 'language) (let nil " ORDER BY lang_code")) (t (let nil " ORDER BY id"))) (if (eq calibredb-order 'desc) (progn " DESC"))))) (line-list (split-string (calibredb-chomp query-result) calibredb-sql-newline))) (cond ((equal "" query-result) '("")) (t (let (res-list h-list f-list a-list) (let ((--dolist-tail-- line-list)) (while --dolist-tail-- (let ((line (car --dolist-tail--))) (if (string-match-p (concat "^[0-9]\\{1,10\\}" calibredb-sql-separator) line) (setq res-list (cons (calibredb-query-to-alist line) res-list))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- res-list)) (while --dolist-tail-- (let ((item (car --dolist-tail--))) (cond ((string-match-p "archive" (calibredb-getattr (list item) :tag)) (setq res-list (remove item res-list)) (setq a-list (cons item a-list))) ((string-match-p "favorite" (calibredb-getattr (list item) :tag)) (setq res-list (remove item res-list)) (setq f-list (cons item f-list))) ((string-match-p "highlight" (calibredb-getattr (list item) :tag)) (setq res-list (remove item res-list)) (setq h-list (cons item h-list)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq res-list (nconc a-list res-list h-list f-list)) (calibredb-getbooklist res-list)))))
  calibredb-candidates()
  (setq calibredb-search-entries (calibredb-candidates))
  (or calibredb-search-entries (setq calibredb-search-entries (calibredb-candidates)))
  (let ((cand (or calibredb-search-entries (setq calibredb-search-entries (calibredb-candidates))))) (if calibredb-full-entries nil (setq calibredb-full-entries calibredb-search-entries)) (if (get-buffer (calibredb-search-buffer)) (progn (kill-buffer (calibredb-search-buffer)))) (if (equal calibredb-search-filter "") (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (switch-to-buffer (calibredb-search-buffer)) (goto-char (point-min)) (if (equal cand '("")) nil (let ((--dolist-tail-- cand)) (while --dolist-tail-- (let ((item (car --dolist-tail--))) (let (beg end) (setq beg (point)) (insert (car item)) (calibredb-detailed-view-insert-image item) (setq end (point)) (put-text-property beg end 'calibredb-entry item) (insert "\n")) (setq --dolist-tail-- (cdr --dolist-tail--))))) (goto-char (point-min))) (calibredb-ref-default-bibliography) (if (eq major-mode 'calibredb-search-mode) nil (calibredb-search-mode)))
  (cond ((null calibredb-db-dir) (message "calibredb: calibredb-db-dir is nil! calibredb won't work without it.")) ((not (file-regular-p calibredb-db-dir)) (message "calibredb: %s doesn't exist!") calibredb-db-dir) (t (let ((cand (or calibredb-search-entries (setq calibredb-search-entries (calibredb-candidates))))) (if calibredb-full-entries nil (setq calibredb-full-entries calibredb-search-entries)) (if (get-buffer (calibredb-search-buffer)) (progn (kill-buffer (calibredb-search-buffer)))) (if (equal calibredb-search-filter "") (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (switch-to-buffer (calibredb-search-buffer)) (goto-char (point-min)) (if (equal cand '("")) nil (let ((--dolist-tail-- cand)) (while --dolist-tail-- (let ((item (car --dolist-tail--))) (let (beg end) (setq beg (point)) (insert (car item)) (calibredb-detailed-view-insert-image item) (setq end (point)) (put-text-property beg end 'calibredb-entry item) (insert "\n")) (setq --dolist-tail-- (cdr --dolist-tail--))))) (goto-char (point-min))) (calibredb-ref-default-bibliography) (if (eq major-mode 'calibredb-search-mode) nil (calibredb-search-mode)))))
  calibredb()
  funcall-interactively(calibredb)
  command-execute(calibredb record)
  execute-extended-command(nil "calibredb" nil)
  funcall-interactively(execute-extended-command nil "calibredb" nil)
  command-execute(execute-extended-command)

But:
calibredb-query-output is 'c:/Program' is not recognized as an internal or external command, operable program or batch file.

Config in init file:

(use-package calibredb :defer t
       :config
       (setq calibredb-root-dir "c:/Users/micha/Calibre Library")
       (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
       (setq calibredb-library-alist '(("c:/Users/micha/Calibre Library"))))

I put the Calibre directory in exec-path. It's already in the system path.

The tool itself works fine.

C:\Users\micha
{micha} [57] --> calibredb list
id  title                                                                       authors
1   Quick Start Guide                                                           John Schember
3   A Breach of Promise                                                         Anne Perry
4   Weighed in the Balance                                                      Anne Perry
5   We Shall Not Sleep                                                          Anne Perry
6   A Christmas Promise                                                         Anne Perry
7   A Christmas Homecoming                                                      Anne Perry
[ ... ]

Win 10 Pro
GNU Emacs 29.0.50 (build 2, x86_64-w64-mingw32) of 2022-02-10

Thanks.
mp

How to open an ebook?

I try this command:

M-x calibredb
In *calibredb-search* buffer, move the cursor to the ebook you want to open.
Press RET/o/O/V to open it.
If you are using macOS, you can also press , to quick look the ebook.

This will open in the buffer, like this:
截屏2021-03-22 下午4 41 57

How can I set the display to be correct after executing the above command?

How to set a virtual library for untagged entries?

In Calibre I set up a virtual library to show untagged entries with the following search expression: tags:false.

What variable (calibredb-search-filter) should I define in my init to have the same virtual library in calibredb?

invalid-function helm-build-sync-source

config:

(use-package helm :ensure t)

(use-package calibredb
  :quelpa
  (calibredb :repo "chenyanming/calibredb.el" :fetcher github)
  :init
  (require 'calibredb)
  (setq sql-sqlite-program "/usr/bin/sqlite3"
        calibredb-root-dir (expand-file-name "~/Documents/Calibre")
        calibredb-db-dir (concat calibredb-root-dir "/metadata.db")
        calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb")
  ;; :general
  ;; (tyrant-def
  ;;   "aC" 'calibredb
  ;;   "af" 'calibredb-find-counsel)
  )

GNU Emacs 26.3 (build 1, x86_64-apple-darwin19.4.0, Carbon Version 162 AppKit 1894.4) of 2020-03-27

Debugger entered--Lisp error: (invalid-function helm-build-sync-source)
  helm-build-sync-source("calibredb" :header-name #f(compiled-function (name) #<bytecode 0x43e9335d>) :candidates calibredb-candidates :persistent-action calibredb-find-cover :action calibredb-helm-actions :keymap (keymap (27 keymap (99 . calibredb-set-metadata--comments-1) (116 . calibredb-set-metadata--tags-1)) keymap (normal-state keymap "Auxiliary keymap for Normal state" (32 . helm-toggle-visible-mark) (121 keymap (121 . helm-kill-selection-and-quit) (80 . helm-copy-to-buffer) (112 . helm-yank-selection)) (47 . helm-quit-and-find-file) (71 . helm-end-of-buffer) (107 . helm-previous-line) (106 . helm-next-line) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (103 keymap (114 . helm-refresh) (103 . helm-beginning-of-buffer) (106 . helm-next-source) (107 . helm-previous-source)) (93 keymap (93 . helm-next-source)) (91 keymap (91 . helm-previous-source)) (tab . helm-select-action) (4 . helm-next-page) (15 . helm-next-source) (14 . helm-next-line) (16 . helm-previous-line) (22 . helm-next-page) (13 . helm-maybe-exit-minibuffer) (2 . helm-previous-page) (6 . helm-next-page) (27 keymap (118 . helm-previous-page) (107 . helm-previous-line) (106 . helm-next-line) (108 . helm-execute-persistent-action) (93 . helm-next-source) (91 . helm-previous-source))) (insert-state keymap "Auxiliary keymap for Insert state" (15 . helm-next-source) (14 . helm-next-line) (16 . helm-previous-line) (22 . helm-next-page) (13 . helm-maybe-exit-minibuffer) (2 . helm-previous-page) (6 . helm-next-page) (27 keymap (118 . helm-previous-page) (107 . helm-previous-line) (106 . helm-next-line) (108 . helm-execute-persistent-action) (93 . helm-next-source) (91 . helm-previous-source))) (\(insert\ normal\)-state keymap "Auxiliary keymap for (insert normal) state") (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 lambda nil (interactive) (helm-select-nth-action 8)) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x439c213d>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x439c20e9>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) (next . helm-next-page) (prior . helm-previous-page) ...) :candidate-number-limit 9999)
  byte-code("\301\302!\205\026\0\302\303\304\305\306\307\310\311\312\313\314\010\315\316&\015\207" [calibredb-helm-map fboundp helm-build-sync-source "calibredb" :header-name #f(compiled-function (name) #<bytecode 0x43e9335d>) :candidates calibredb-candidates :persistent-action calibredb-find-cover :action calibredb-helm-actions :keymap :candidate-number-limit 9999] 14)
  (defvar calibredb-helm-source (byte-code "\301\302!\205\026\0\302\303\304\305\306\307\310\311\312\313\314\010\315\316&\015\207" [calibredb-helm-map fboundp helm-build-sync-source "calibredb" :header-name #f(compiled-function (name) #<bytecode 0x43e9335d>) :candidates calibredb-candidates :persistent-action calibredb-find-cover :action calibredb-helm-actions :keymap :candidate-number-limit 9999] 14) ("/Users/wangtianshu/.emacs.d/elpa/calibredb-20200516.1445/calibredb.elc" . 5383))
  require(calibredb)
  (progn (require (quote calibredb)) (setq sql-sqlite-program "/usr/bin/sqlite3" calibredb-root-dir (expand-file-name "~/Documents/Calibre") calibredb-db-dir (concat calibredb-root-dir "/metadata.db") calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb") (run-hooks (quote use-package--calibredb--post-init-hook)))
  (if (run-hook-with-args-until-failure (quote use-package--calibredb--pre-init-hook)) (progn (require (quote calibredb)) (setq sql-sqlite-program "/usr/bin/sqlite3" calibredb-root-dir (expand-file-name "~/Documents/Calibre") calibredb-db-dir (concat calibredb-root-dir "/metadata.db") calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb") (run-hooks (quote use-package--calibredb--post-init-hook))))
  (condition-case err (if (run-hook-with-args-until-failure (quote use-package--calibredb--pre-init-hook)) (progn (require (quote calibredb)) (setq sql-sqlite-program "/usr/bin/sqlite3" calibredb-root-dir (expand-file-name "~/Documents/Calibre") calibredb-db-dir (concat calibredb-root-dir "/metadata.db") calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb") (run-hooks (quote use-package--calibredb--post-init-hook)))) ((debug error) (funcall use-package--warning115 :init err)))
  (progn (use-package-statistics-gather :init (quote calibredb) nil) (condition-case err (if (run-hook-with-args-until-failure (quote use-package--calibredb--pre-init-hook)) (progn (require (quote calibredb)) (setq sql-sqlite-program "/usr/bin/sqlite3" calibredb-root-dir (expand-file-name "~/Documents/Calibre") calibredb-db-dir (concat calibredb-root-dir "/metadata.db") calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb") (run-hooks (quote use-package--calibredb--post-init-hook)))) ((debug error) (funcall use-package--warning115 :init err))) (eval-after-load (quote calibredb) (function (lambda nil (progn (use-package-statistics-gather :config (quote calibredb) nil) (use-package-statistics-gather :config (quote calibredb) t))))) (use-package-statistics-gather :init (quote calibredb) t))
  (condition-case err (progn (use-package-statistics-gather :init (quote calibredb) nil) (condition-case err (if (run-hook-with-args-until-failure (quote use-package--calibredb--pre-init-hook)) (progn (require (quote calibredb)) (setq sql-sqlite-program "/usr/bin/sqlite3" calibredb-root-dir (expand-file-name "~/Documents/Calibre") calibredb-db-dir (concat calibredb-root-dir "/metadata.db") calibredb-program "/Applications/calibre.app/Contents/MacOS/calibredb") (run-hooks (quote use-package--calibredb--post-init-hook)))) ((debug error) (funcall use-package--warning115 :init err))) (eval-after-load (quote calibredb) (function (lambda nil (progn (use-package-statistics-gather :config (quote calibredb) nil) (use-package-statistics-gather :config (quote calibredb) t))))) (use-package-statistics-gather :init (quote calibredb) t)) ((debug error) (funcall use-package--warning115 :catch err)))
  eval-buffer(#<buffer  *load*-464687> nil "/Users/wangtianshu/.emacs.d/lisp/editor-misc.el" nil t)  ; Reading at buffer position 1968
  load-with-code-conversion("/Users/wangtianshu/.emacs.d/lisp/editor-misc.el" "/Users/wangtianshu/.emacs.d/lisp/editor-misc.el" nil t)
  require(editor-misc)
  eval-buffer(#<buffer  *load*-265410> nil "/Users/wangtianshu/.emacs.d/init.el" nil t)  ; Reading at buffer position 1915
  load-with-code-conversion("/Users/wangtianshu/.emacs.d/init.el" "/Users/wangtianshu/.emacs.d/init.el" nil nil)
  load("/Users/wangtianshu/.emacs.d/init.el")
  (let* ((emacs-directory (file-name-as-directory (chemacs-emacs-profile-key (quote user-emacs-directory)))) (init-file (expand-file-name "init.el" emacs-directory)) (custom-file- (chemacs-emacs-profile-key (quote custom-file) init-file)) (server-name- (chemacs-emacs-profile-key (quote server-name)))) (setq user-emacs-directory emacs-directory) (if server-name- (progn (setq server-name server-name-))) (mapcar (function (lambda (env) (setenv (car env) (cdr env)))) (chemacs-emacs-profile-key (quote env))) (if (chemacs-emacs-profile-key (quote straight-p)) (progn (chemacs-load-straight))) (load init-file) (if (not custom-file) (progn (setq custom-file custom-file-) (if (equal custom-file init-file) nil (load custom-file)))))
  chemacs-load-profile("default")
  (if args (let ((s (split-string (car args) "="))) (cond ((equal (car args) "--with-profile") (add-to-list (quote command-switch-alist) (quote ("--with-profile" lambda (_) (pop command-line-args-left)))) (chemacs-load-profile (car (cdr args)))) ((equal (car s) "--with-profile") (add-to-list (quote command-switch-alist) (cons (car args) (quote (lambda ...)))) (chemacs-load-profile (mapconcat (quote identity) (cdr s) "="))) (t (chemacs-check-command-line-args (cdr args))))) (chemacs-load-profile (chemacs-detect-default-profile)))
  chemacs-check-command-line-args(nil)
  (cond ((equal (car args) "--with-profile") (add-to-list (quote command-switch-alist) (quote ("--with-profile" lambda (_) (pop command-line-args-left)))) (chemacs-load-profile (car (cdr args)))) ((equal (car s) "--with-profile") (add-to-list (quote command-switch-alist) (cons (car args) (quote (lambda (_))))) (chemacs-load-profile (mapconcat (quote identity) (cdr s) "="))) (t (chemacs-check-command-line-args (cdr args))))
  (let ((s (split-string (car args) "="))) (cond ((equal (car args) "--with-profile") (add-to-list (quote command-switch-alist) (quote ("--with-profile" lambda (_) (pop command-line-args-left)))) (chemacs-load-profile (car (cdr args)))) ((equal (car s) "--with-profile") (add-to-list (quote command-switch-alist) (cons (car args) (quote (lambda (_))))) (chemacs-load-profile (mapconcat (quote identity) (cdr s) "="))) (t (chemacs-check-command-line-args (cdr args)))))
  (if args (let ((s (split-string (car args) "="))) (cond ((equal (car args) "--with-profile") (add-to-list (quote command-switch-alist) (quote ("--with-profile" lambda (_) (pop command-line-args-left)))) (chemacs-load-profile (car (cdr args)))) ((equal (car s) "--with-profile") (add-to-list (quote command-switch-alist) (cons (car args) (quote (lambda ...)))) (chemacs-load-profile (mapconcat (quote identity) (cdr s) "="))) (t (chemacs-check-command-line-args (cdr args))))) (chemacs-load-profile (chemacs-detect-default-profile)))
  chemacs-check-command-line-args(("/usr/local/Cellar/emacs-mac/emacs-26.3-z-mac-7.9/Emacs.app/Contents/MacOS/Emacs"))
  eval-buffer(#<buffer  *load*> nil "/Users/wangtianshu/.emacs" nil t)  ; Reading at buffer position 7021
  load-with-code-conversion("/Users/wangtianshu/.emacs" "/Users/wangtianshu/.emacs" t t)
  load("~/.emacs" t t)
  #f(compiled-function () #<bytecode 0x400ca951>)()
  command-line()
  normal-top-level()

How to view/sort by Published date?

I often want to see, and sometimes be able to sort by, Published date, rather than Date when the item was added.
This is in "calibredb-search*. I am aware that Published date is available in calibredb-entry.

Is this possible? Currently I use the calibre application when I have these needs.

Keybindings don't work in evil-mode (even when evil-mode is set to `evil-emacs-state`)

I've been trying to get calibredb-search's normal keybindings to function in evil-mode, but, for example when I type o, evil sees it as a regular text buffer and tries to treat it as such, so I get this in *Messages*:

evil-open-below: Buffer is read-only: #<buffer *calibredb-search*>

My attempt to mitigate this in my org config file is as follows:

** Integrate with Calibre
Use calibre db.
#+begin_src emacs-lisp
  (use-package calibredb
    :defer t
    :config
    (setq calibredb-root-dir "~/Books")
    (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
    
    (defun disable-evil-in-calibredb-search ()
      "Switch to `emacs` state if the major mode is `calibredb-search`."
      (when (and (boundp 'evil-mode) evil-mode)
        (evil-emacs-state)))

    :hook (calibredb-search-mode . disable-evil-in-calibredb-search))
#+end_src

I also tried a minimal version of this:

** Integrate with Calibre
Use calibre db.
#+begin_src emacs-lisp
  (use-package calibredb
    :defer t
    :config
    (setq calibredb-root-dir "~/Books")
    (setq calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
    :hook (calibredb-search-mode . evil-emacs-state))
#+end_src

Comments UI inconsistencies

Not a big issue, but seems like book comments don't display correctly (just show the html source):
image

When using calibredb-find-helm the comments for a book can take up the whole buffer:

image

Using calibredb-find-counsel seems better as comments don't get wrapped (however calibredb-find-counsel search is unusably slow for me).

Can this library support the url `calibre:` protocol?

Calibre 5.9.0 version supports URI to jump to specific highlights and notes:
[[calibre://view-book/hex-43616c69627265e4b9a6e5ba93/55/AZW3?open_at=epubcfi%28/36/2/4/90/1%3A0%29][2021/3/22 2:13 PM]]

[[calibre://view-book/_hex_-43616c69627265e4b9a6e5ba93/55/AZW3?open_at=epubcfi%28/36/2/4/90/1%3A0%29][2021/3/22 2:13 PM]]

Can this library support the url calibre: protocol?

error: (wrong-type-argument sequencep calibredb-virtual-library-alist)

Is this a mistake or am I using it wrong? Seems like a simple fix

  mapcar(cdr calibredb-virtual-library-alist)
  (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter)
  (if (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter) nil (setq calibredb-virtual-library-name calibredb-virtual-library-default-name))
  (let ((inhibit-read-only t) (standard-output (current-buffer))) (erase-buffer) (if (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter) nil (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (calibredb-search--update-list) (let ((--dolist-tail-- calibredb-search-entries)) (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (funcall calibredb-search-print-entry-function entry) (insert "\n") (setq --dolist-tail-- (cdr --dolist-tail--))))) (goto-char (point-min)) (setq calibredb-search-last-update (float-time)))
  (progn (let ((inhibit-read-only t) (standard-output (current-buffer))) (erase-buffer) (if (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter) nil (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (calibredb-search--update-list) (let ((--dolist-tail-- calibredb-search-entries)) (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (funcall calibredb-search-print-entry-function entry) (insert "\n") (setq --dolist-tail-- (cdr --dolist-tail--))))) (goto-char (point-min)) (setq calibredb-search-last-update (float-time))))
  (if force (progn (let ((inhibit-read-only t) (standard-output (current-buffer))) (erase-buffer) (if (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter) nil (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (calibredb-search--update-list) (let ((--dolist-tail-- calibredb-search-entries)) (while --dolist-tail-- (let ((entry ...)) (funcall calibredb-search-print-entry-function entry) (insert "\n") (setq --dolist-tail-- (cdr --dolist-tail--))))) (goto-char (point-min)) (setq calibredb-search-last-update (float-time)))))
  (save-current-buffer (set-buffer (calibredb-search-buffer)) (if force (progn (let ((inhibit-read-only t) (standard-output (current-buffer))) (erase-buffer) (if (-contains\? (mapcar #'cdr 'calibredb-virtual-library-alist) calibredb-search-filter) nil (setq calibredb-virtual-library-name calibredb-virtual-library-default-name)) (calibredb-search--update-list) (let ((--dolist-tail-- calibredb-search-entries)) (while --dolist-tail-- (let (...) (funcall calibredb-search-print-entry-function entry) (insert "\n") (setq --dolist-tail-- ...)))) (goto-char (point-min)) (setq calibredb-search-last-update (float-time))))))
  calibredb-search-update(:force)
  calibredb-search-keyword-filter("")
  calibredb-search-refresh-and-clear-filter()
  funcall-interactively(calibredb-search-refresh-and-clear-filter)
  command-execute(calibredb-search-refresh-and-clear-filter)

Error: INVALID LIBRARY

Hello,

Trying to get calibredb.el working, I keep getting the error INVALID LIBRARY when I try to call it. Not sure why, as I have the config pointing at my library.

Here's my config:

(use-package! calibredb
:config
(setq
  sql-sqlite-program  "/usr/bin/sqlite3"
 calibredb-root-dir "~/Documents/Library"
 calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir)
 calibredb-program "/usr/bin/calibre"
 calibredb-library-alist '(("~/Documents/Library"

                                )))

Cheers

使用calibredb-export-convert-epub-dispatch导出电子书失败

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  file-exists-p(nil)
  calibredb-get-file-path(nil t)
  calibredb-convert-to-epub()
  funcall-interactively(calibredb-convert-to-epub)
  call-interactively(calibredb-convert-to-epub nil nil)
  command-execute(calibredb-convert-to-epub)

Blank book are not on the list

Hi , I use calibre to manage my ebooks and paper books .
For paper book , I will add a blank book by ISBN, but these paper books are not on the list in calibredb.

Is this normal ? If it's normal, should we add this feature?

error: (void-variable calibredb-root-dir) after updating

Everything was working fine before the update.

I got this error after updating the package.

  Error (use-package): calibredb/:catch: Symbol’s value as variable is void: calibredb-root-dir

This is the output of emacs -degub-init.

Debugger entered--Lisp error: (void-variable calibredb-root-dir)
  (expand-file-name "metadata.db" calibredb-root-dir)
  eval((expand-file-name "metadata.db" calibredb-root-dir))
  custom-initialize-reset(calibredb-db-dir (funcall #'#f(compiled-function () #<bytecode 0x1e0000171e91>)))
  custom-declare-variable(calibredb-db-dir (funcall #'#f(compiled-function () #<bytecode 0x1e0000171e91>)) "Location of \"metadata.db\" in your calibre library." :type file :group calibredb)
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\210\3131?\0\300\314!\210\300\315..." [require s dash cl-lib cl-macs sql hl-line transient sendmail dired thingatpt (error) helm ivy all-the-icons icons-in-terminal custom-declare-group calibredb nil "calibredb group" :group custom-declare-variable calibredb-db-dir funcall function #f(compiled-function () #<bytecode 0x1e0000171e91>) "Location of \"metadata.db\" in your calibre library." :type file calibredb-ref-default-bibliography #f(compiled-function () #<bytecode 0x1e0000171e91>) "BibTex file for current library."] 8)
  require(calibredb-core)
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\207" [require calibredb-core calibredb-faces calibredb-search calibredb-show calibredb-helm calibredb-ivy calibredb-utils calibredb-annotation calibredb-transient calibredb-library] 2)
  require(calibredb nil t)
  (not (require 'calibredb nil t))
  (if (not (require 'calibredb nil t)) (display-warning 'use-package (format "Cannot load %s" 'calibredb) :error))
  (progn (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-author-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-id-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-comment-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(sql-sqlite-program "~/bin/sqlite/sqlite3" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-root-dir "~/Documents/books" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir) nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-program "/usr/bin/calibredb" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-library-alist '(("~/Documents/books") ("~/Documents/articles")) nil nil "Customized with use-package calibredb"))) (condition-case err (autoload 'calibredb "calibredb") ((debug error) (funcall use-package--warning72 :init err))) (if (not (require 'calibredb nil t)) (display-warning 'use-package (format "Cannot load %s" 'calibredb) :error)))
  (condition-case err (progn (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-author-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-id-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-comment-width 0 nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(sql-sqlite-program "~/bin/sqlite/sqlite3" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-root-dir "~/Documents/books" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir) nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-program "/usr/bin/calibredb" nil nil "Customized with use-package calibredb"))) (let ((custom--inhibit-theme-enable nil)) (custom-theme-set-variables 'use-package '(calibredb-library-alist '(... ...) nil nil "Customized with use-package calibredb"))) (condition-case err (autoload 'calibredb "calibredb") ((debug error) (funcall use-package--warning72 :init err))) (if (not (require 'calibredb nil t)) (display-warning 'use-package (format "Cannot load %s" 'calibredb) :error))) ((debug error) (funcall use-package--warning72 :catch err)))
  eval-buffer(#<buffer  *load*> nil "/home/last/.emacs.d/init.el" nil t)  ; Reading at buffer position 36251
  load-with-code-conversion("/home/last/.emacs.d/init.el" "/home/last/.emacs.d/init.el" t t)
  load("/home/last/.emacs.d/init" noerror nomessage)
  startup--load-user-init-file(#f(compiled-function () #<bytecode 0x286c35a82587f07>) #f(compiled-function () #<bytecode 0x81a386fa1b19353>) t)
  command-line()
  normal-top-level()

Emacs version.

  GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10) of 2020-03-09

My configuration.

(use-package calibredb
  :custom
  (calibredb-author-width 0)
  (calibredb-id-width 0)
  (calibredb-comment-width 0)
  (sql-sqlite-program "~/bin/sqlite/sqlite3")
  (calibredb-root-dir "~/Documents/books")
  (calibredb-db-dir (expand-file-name "metadata.db" calibredb-root-dir))
  (calibredb-program "/usr/bin/calibredb")
  (calibredb-library-alist '(("~/Documents/books")
                                  ("~/Documents/articles")))
:init
  (autoload 'calibredb "calibredb"))

Error "Symbol’s function definition is void: calibredb-chomp"

I encountered the following error while loading the package:

Error (use-package): calibredb/:catch: Symbol’s function definition is void: calibredb-chomp

You have to define calibredb-chomp function before using it in (defvar calibredb-default-opener ...).

is there a way to mention calibre file in org file?

New to emacs/org here, found this awesome calibre client, thanks for creating this!
This maybe a little off topic. But I'm wondering if there's a way to mention calibre books (by their id/title) when I'm outside of M-x calibredb using orgmode? For example when I'm writing a journal, I would want to include what I've read today and some thoughts. This could be helpful.

How to open an ebook?

I try this command:

M-x calibredb
In *calibredb-search* buffer, move the cursor to the ebook you want to open.
Press RET/o/O/V to open it.
If you are using macOS, you can also press , to quick look the ebook.

This will open in the buffer, like this:
截屏2021-03-22 下午4 41 57

How can I set the display to be correct after executing the above command?

org-ref:Version 3 has eliminated all the org-ref-* variables

org-ref:Version 3 has eliminated all the org-ref-* variables, and instead uses analogous variables defined in bibtex-completion.
org-ref-default-bibliography update to bibtex-completion-bibliography:

(use-package! org-ref
  :after-call calibredb
  :config
  (setq calibredb-ref-default-bibliography (concat (file-name-as-directory calibredb-root-dir) "catalog.bib"))
  (add-to-list 'bibtex-completion-bibliography calibredb-ref-default-bibliography)
  (setq org-ref-get-pdf-filename-function 'org-ref-get-mendeley-filename))

Ivy fetch metadata preview broken

The change in calibredb-utils.el in commit a9588db broke the preview functionality here.
It works fine here without the if statement. So I hope you can fix the 'calibredb-show-results can not work' issue in a different way? (I did not encounter such issue yet, so it is hard to trace for me).

Add "calibredb-library-manipulated-hook" for users of BibTeX or related formats

What the title says. Basically, I have a function that automatically exports my Calibre library to a BibTeX file, and I think it'd be a good idea to add a hook to trigger it whenever I add or remove a book from within emacs:

(defun yaqub/calibredb-export-bibtex ()
  (interactive)
  (let ((bibtex-command "calibredb catalog ~/Books/References.bib"))
    (shell-command bibtex-command)))

I think this would be a good idea for users of plugins such as citar, helm- and ivy-bibtex, and org-roam-bibtex. I might make a PR today for this.

Escape character in copied file link

Hi, another question ...

The nationality of the author is indicated in square brackets in calibre. And the square brackets will make the org file link invalid, I think we should escape it (or them) .

For example,

image

image

error: (wrong-type-argument char-or-string-p nil) every time I try to start calibredb

Every time I try to run calibredb I get the following error. It started after an update a few weeks ago.

Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
  calibredb-query-to-alist((149 "Coulter, Doug" "Doug Coulter/Digital Audio Processing (149)" nil nil "2007-12-27 23:00:00+00:00" "Digital Audio Processing" "audio" nil "test" "uri:http://www.hxa7241.org/articles/content/epup-g..." "CMP" nil "eng" "2018-08-27 13:06:56+00:00"))
  calibredb-candidates()
  calibredb()
  funcall-interactively(calibredb)
  command-execute(calibredb)

Default Bindings clashing with Evil Mode?

I am using the plugin with a DOOM EMACS configuration, when opening in the dash board the default key bindings, for instance, O to open a file doesn't work. I suspect this is because of evil mode bindings and hence I am currently resorting to M-x calibredb-find-file, I was wondering if there is way to configure the plugin such that it uses key bindings that play nice with evil mode?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.