Kindle 阅读器“生词本”功能详细使用说明
前两天有一位小伙伴“顾寻”在 Kindle 伴侣的“许愿”区留言提了个需求,苦于手抄单词的他想把 Kindle 当成电子词典,更好地利用其“生词本”功能学习英文单词,却不太会用,想让 Kindle 伴侣写一篇 Kindle 生词本的详细使用介绍。所以,这几天就留意了一下“生词本”的使用,并试图根据他的需求寻找可行的解决方案,但遗憾的是,由于原生的 Kindle 单词本这个功能是单纯服务于阅读电子书的功能,可能不能完全满足这位小伙伴的需求。下面就详细介绍一下 Kindle 的生词本功能的用法。
目录
一、生词本功能简介
二、如何使用生词本
三、生词本功能缺点
四、生词本其它玩法
五、如何清空生词本
方法一:SQLite 管理软件
方法二:SQLite 命令行
以下内容是通过查询资料和实机测试测出的结果,如有出现错误或纰漏,敬请留言指正。
一、生词本功能简介
生词本(Vocabulary Builder)是 Kindle 阅读器的一个原生功能。该功能由“程序”和“数据库”组成。“程序”就是我们在 Kindle 中可以看到的那个叫“生词本”的东西。打开它两种方法:一种是点击右上角的菜单按钮,然后在弹出的菜单中点击“生词本”;另一种是在 Kindle 主屏中点击“生词本”项。
“数据库”就是存储单词数据的一个文件型数据库(SQLite),在 Kindle 系统中存放的绝对路径如下所示:
/chroot/mnt/us/system/vocabulary/vocab.db
通常我们会通过 USB 数据线将 Kindle 连接到了电脑上查看其中的文件(也就是将 Kindle 设备的磁盘挂载到我们所使用的操作系统中),那么数据库文件可以在 Kindle 磁盘的根目录中找到:
system/vocabulary/vocab.db
* 注意:一般情况下 Kindle 根目录中的 system 文件夹处于隐藏状态,你需要通过设置文件浏览器,让其显示隐藏文件。
平时阅读电子书时,遇到生词后,我们可以用手指划词,调取 Kindle 字典查看释义,与此同时,该词便会被自动添加到生词本的数据库中。Kindle 原生功能只有这一种往生词本中添加单词的方式。
如果绑定 Kindle 的亚马逊账户开启了 Whispersync 设备同步,生词本中收录的词汇会自动同步到云端。有的小伙伴为了清空生词本就试图删除此文件,但仅仅删除 vocab.db 这个数据库文件是无效的,即便删掉了 Kindle 仍然会从云端拉取已同步的数据。那如何清空生词本?请参考文末提供的方法。
二、如何使用生词本
和我们在手机里常用的单词 APP 相比,Kindle 生词本的功能较为单一,没有丰富的花样玩儿法。Kindle 生词本只有两种展示字词的方式,对词汇的操作也只有“删除”和“已掌握”两种。即便如此,你仍然可较为方便地利用生词本复习曾在阅读电子书的过程中积累下来的生词。下面我们来详细介绍一下。
如上图所示,打开生词本后可以看到左上角有“单词|电子书”两个选项,其含义如下:
- 单词:包含生词本所收录的所有单词,根据添加的先后顺序倒序排列(即最后添加的在最前面)。
- 电子书:将收录的单词用书名进行分类,在哪本书中添加的单词就以其书名作为索引,互不混淆。
右上角的“学习中(xxx)”显示的是当前的生词总量。切换到“单词”项,显示的是生词本收录的全部词汇数量;切换到“电子书”项,并进入某个书名索引中后,则显示当前这本书中收录的单词数量。
点击“学习中”会弹出一个菜单,在这里可以切换到“已掌握”,这里存放是已掌握的单词。所有在“学习中”的单词,都可以通过点击词卡中的“已掌握”按钮,将其归类到“已掌握”分类中。
生词本有两种展示单词的方式。一种是点击某个单词弹出一个词汇对话框,如上图所示,对话框里有“字典”和“用法”两个选项卡。“字典”项显示的是该词的释义,“用法”项和该词条相关联例句(例句是从取词的那本电子书中截取下来的)。若已掌握该词,可点击对话框右下角的【已掌握】按钮将其归到“已掌握单词”中。对于误收录的词,可点击对话框左下角的【删除】按钮将其从数据库中删除。
另一种是以生词卡的方式展示单词,可通过点击屏幕底部的【生词卡】按钮调取,如上图所示。此卡默认仅显示单词和与其相关的例句,很适合用来复习和辅助记忆。如果已掌握这个词,点击下方的【标记为已掌握】按钮即可将其归类为“已掌握单词”。如果忘记了这个词的意思,可点击词卡左上角的“查看释义”温习该词的释义。如此循环,直到掌握所有生词。注意,如果想要复习所有生词,开启“生词卡”前需要先把左上角切换到“单词”,如果只是想复习某本书中的生词,则切换到“电子书”,选择那本书。
三、生词本功能缺点
以上就是 Kindle 生词本的所有用法,很简单。正因为太简单,所以不可避免存在很多缺点。
Kindle 生词本收录单词的方式是被动式的,只有在阅读电子书遇到生词,用手指划词调用字典查看释义的同时,才会被添加到生词本的。这样单词的收录就会局限于所看的那些电子书,无法手动录入。
默认情况下 Kindle 会把所有取词收录到生词本中,用户没有选择权,这就会出现误添加的情况,比如很多时候只是想临时查看释义,并不是想要添加生词。另外,对于会同时阅读中文和英文电子书的国人来说,还会遇到中文生词和英文生词并存的情况,但 Kindle 生词本最多只能按书名索引,并不能将其区分开,从而出现中英文生词并存的情况。这些都导致生词本中收录的词汇乱糟糟显得没有条理。
和我们常见的单词背诵软件不同的是,Kindle 生词本只是单纯地按生词的添加顺序倒序排列的,并没有丰富的算法辅助用户记忆这些生词,这也是说它功能薄弱的最重要理由之一。
当然,Kindle 作为一款电子书阅读软件,生词本也仅仅是为增强阅读体验而开发的一项辅助性功能,我们无法按照专业的词汇记忆软件要求它。但是既然能获取生词本的数据库,自然可以有其它玩法。
四、生词本其它玩法
因为原生的 Kindle 生词本的“程序”比较弱,出现了很多第三方软件,通过读取 Kindle 生词本数据库,按照各自的意愿展示生词。比如很多小伙伴就把数据导入到 Anki 辅助记忆单词(Anki 是一款带算法的字卡软件,可以根据记忆卡的优先级、紧急程度进行优化调整,有桌面和移动客户端)。
除了软件,还出现过在线服务,其实和桌面客户端一样也对通过导入生词本数据库进行处理并展示的。不过大多是个人站点,服务器并不稳定,所以如果你注重自己的数据,慎用此类站点。
Kindle 用的是 SQLite 数据库,如果你对 SQL 比较熟悉,并且掌握 C/C++,Java、PHP、Perl、Python 等任意一门语言,都可以把生词本的数据库调取出来,按照自己的喜好加以处理。
五、如何清空生词本
有些小伙伴可能还不知道 Kindle 有生词本这个功能,当打开它的时候,看到满屏不知什么时候添加的单词很懵逼,第一个想法可能就是想清空重来,却发现生词本竟然没有提供全部清空的功能,要是一个一个地删除要删到猴年马月?那该如何删除单词本里面所有单词呢?
本文前面提到过 Kindle 本地有一个数据库文件 vocab.db,但遗憾的是,如果绑定了亚马逊账号并开启了自动同步功能,直接删除它是无效的,这是因为 Kindle 本地和云端采用的是双向同步机制,云端一旦发现本地的数据库文件被删除了就会自动拉取云端数据,所以解决方法不是删除数据库,而是修改数据库,清空所有词汇条目,然后再让它自动同步到云端,就可以彻底干掉所有词条记录了。
实现方法有两种,一种是使用 SQLite 管理软件,一种是使用 SQLite 命令。具体操作步骤如下:
方法一:SQLite 管理软件
- 下载一款 SQLite 管理软件,这里以 DB Browser for SQLite 为例(支持 Windows 和 Mac);
- 将 Kindle 连到电脑,并把里面的生词本数据库 vocab.db 拷贝到电脑中;
- 点击 DB Browser for SQLite 软件的【打开数据库】按钮,选择 vocab.db 打开;
- 切换到“Browse Data”,选择“LOOKUPS”表,全选表中的记录并点击【删除记录】按钮全部删除,然后在选择“WORDS”表,按同样的方式操作(除了这种可视化方法,也可以切换到“Execute SQL”,输入代码
DELETE FROM LOOKUPS; DELETE FROM WORDS;
然后点击“►”按钮也可以清空这两个表); - 点击软件上方的【Write Changes】按钮保存对当前数据库的更改;
- 把修改后的 vocab.db 重新拷贝到 Kindle 原来的目录,覆盖原有的文件。
方法二:SQLite 命令行
首先确保你的电脑安装了 SQLite(通常 macOS 和 Linux 系统已预装此程序),然后以命令行的方式修改 Kindle 生词本数据库文件。具体方法为,打开“命令提示符”“终端”切换到 vocab.db 所在目录。
对于不同的系统,Kindle 磁盘的挂载位置不一样,对于 Windows 来说,通常会以新磁盘的方式挂载到资源管理器中,看到磁盘盘符后,你可以通过以下命令切换到 vocab.db 所在目录:
cd E:\Kindle\system\vocabulary
对于 macOS 和 Linux 来说,通常会把 Kindle 磁盘挂载到系统的某个目录下。比如 macOS 就会将 Kindle 磁盘挂载到 Volumes 目录下,你可以通过以下命令切换到 vocab.db 所在目录:
cd /Volumes/Kindle/system/vocabulary
然后执行下面这两条命令即可:
$ sqlite3 vocab.db 'DELETE FROM LOOKUPS'
$ sqlite3 vocab.db 'DELETE FROM WORDS'
这样不仅清空了 Kindle 生词本本地的词条,在联网的状态下,云端的生词就会被自动清空了。
———–
参考资料:
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/465.html
延伸阅读
- [2024.04.03] Kindle 阅读器固件升级至 5.16.8
- 中亚 Send to Kindle 微信服务推送步骤变更
- [每周一书]《软技能》代码之外的生存指南
- Kindle 通用越狱教程:适用固件版本 5.12.2.2~5.14.2
- [2016.11.08] Kindle 阅读器固件升级至 5.8.5.0.2
- 亚马逊 Kindle 全系列更新,含首款彩屏 Kindle Colorsoft
- 公告:“Kindle伴侣”更换域名并改名为“书伴”
- [每周一书] 正在消失中的《最后的耍猴人》
- 非 Kindle 商店购买的电子书不再支持显示封面屏保功能
- Sherry推荐图书(十七)——有趣的历史入门
- Clippings Fere:导出 Kindle 标注和笔记使其更易于阅读
- [2024.06.05] Kindle 阅读器固件升级至 5.16.9
- 亚马逊首次为 Kindle Scribe 发布版本号为 5.16.1 的固件更新
- [每周一书] 提高效率《搞定 I:无压工作的艺术》
- 全新 Kindle 电子书阅读器 Kindle Voyage 评测
怎么定位vocab.db文件啊? 然后怎么从终端的命令切换的SQLite命令行啊
对于不同的系统,Kindle 磁盘的挂载位置不一样,对于 Windows 来说,通常会以新磁盘的方式挂载到资源管理器中,看到磁盘盘符后,你可以通过以下命令切换到 vocab.db 所在目录:
对于 macOS 和 Linux 来说,通常会把 Kindle 磁盘挂载到系统的某个目录下。比如 macOS 就会将 Kindle 磁盘挂载到 Volumes 目录下,你可以通过以下命令切换到 vocab.db 所在目录:
对于这些操作,文中原来写的不太详细,现已作补充。
请问在windows环境下怎样清空生词本,有类似的软件吗
使用本文推荐的 DB Browser for SQLite 即可,有 Windows 版本,只是之前链接搞错了,现已修正。
使用 SQLite 删除 vocal.db 中 WORDS, LOOKUPS 表内的所有entry之后好像不能添加生词了,大家有没有好办法解决这个问题?
我也一样,请问你后来是怎么解决的呀?
那不是每次只要拷贝第一次清空的生词本文件到kindle里就可以了吗
应该也是可以的。
飞行模式下查找单词释义没办法自动记录到生词本对吗?
如果你的 Kindle 中有同步下来的离线字典,在飞行模式下是可以正常查词的,并且单词会自动记录到生词本中。但是对于单词的释义,不论是否开启飞行模式,都是不会记录到生词本中。在生词本中点击某个单词,仍然是调用离线 Kindle 字典中的释义。
把PDF转换成mobi(通过发亚马逊邮件的方式,主题填写“convert”)
在PDF中查询生词不会被记录到生词本,请问有解决办法吗?
你好,我使用方法二定位vocab.db所在文件夹路径之后执行命令,为什么会显示Error: no such table: LOOKUPS和Error: no such table: WORDS呢?退出来浏览了一下生词本也发现没有删除
是否是需要越狱才可以访问到这个生词本呢?
生词本是 Kindle 自带的功能,如果在“我的图书馆”中没看到,也可以通过 Kindle 屏幕右上角的菜单进入。
我从网上下载的书,按程序发送到kindle上,其他都可以,就是不能添加到生词本。
但从kindle商城购买、kindle电子书库下的书是可以的。
请问有解决办法吗?
请问如何在SQLite中删除特定书籍的生词?
麻烦问一下,我们家几台kindle共用一个账号,怎么能让每个kindle的生词本保持独立,互补干扰?现在是几个kindle的生词本同步成一样的了
zzh 您好。目前同一账号中只能用一个生词本数据,没有细分功能。如果如果想要生词本数据分开,不建议多个 Kindle 共用一个账号。
那么有其他办法让家庭成员共享购买的图书吗?
我知道一种可以随意添加自己需要的单词的方法:假如在平时阅读时看到不懂又需要掌握的单词,第一步先在词典里查找(当然这步不会把生词加入生词本),第二步就在词典里划出你想记的那个单词(这样单词就被记录到生词本了,单词的电子书来源就是查单词的词典)
倒是直接删了vocab.db这个文件有用啊。
mrx 您好。删除之后,在联网状态下仍然会自动下载。
我的办法确实不行。我试了试,联网的确会复原。
我用SQlite删除这两个表的数据后并没有用啊?
确定吗?正确的步骤应该是:先把 vocab.db 拷贝出来,然后删除两个表中的内容并保存,最后把修改的 vocab.db 覆盖原来的 vocab.db 文件。
好蛋疼的方法,手机随便下个APP都比这强