Zhen

日常轻松制作 Anki 卡片

2021-01-07
   

Anki 是一款能让记忆事物变得简单的程序。Anki 比传统的学习方法更为有效,因此你可以大幅减少花在学习上的时间,或是大幅提升学习量。(来自 anki 官方中文介绍)。

我个人很早就耳闻 anki 的大名,2019 年 10月份够买了 iOS 上的官方 APP。但是日常使用仅限于背诵单词,有一搭没一答的在使用。2020 年底学习了 Youtuber Ali 关于 Anki 的课程 Learn Anything With Flashcards The Ultimate Guide To Anki,了解到很多之前不知道的 anki 的强大功能。新的一年开始,希望能坚持 anki 打卡,背诵单词。下面简单介绍一下我使用 anki 的 workflow。

我一直不太习惯背诵单词书,一来没有备考的压力,动力不足,其次没有语境的背诵单词,对我来说印象不够深刻。这么多年的英语学习经历,我几乎没有背诵过单词书。高中积累单词的方法是,在日常考试中遇到的生词,记录到生词本,之后有空没空多翻翻。这样的效果是十分显著的,在后期英语阅读理解速度比较同龄人提高了很多,个人积累的单词量也显著进步。这样的习惯一直断断续续保持着,这么多年使用过有道的单词本,欧陆词典的生词本,用来记录在互联网上浏览遇到的生词,但是效果不佳。原因主要是,互联网上遇到的生词数量太多(有些难度较大的文章可能一篇就会积累数十个),没有了应试压力后很难经常性地回顾,这就导致生词本中不熟悉的单词越来越多,定期背诵带来的沮丧感大增,很难坚持下去。

Anki 通过自己的算法可以完美的解决这个问题。所以要解决的问题是,如何将生词本迁移到 Anki 词库?

最直观的办法是,直接将生词本导出,简单处理下格式,并导入 Anki。这样当然是可行的,但是日常积累遇到的新词如何处理?定期从生词本导入到 Anki 当然是可以的,不过毕竟增加了额外的步骤。永远不要低估自己的惰性,时间长了可能就这多的一步阻碍你继续背诵单词。我们需要的方案是,能够将遇到的生词直接添加到 anki 中,非常幸运的是,现在有很多这样的工具。本文主要介绍我个人经常遇到的两种场景。

在浏览器中添加生词到 Anki

幸运的是,有现成方案可以完美解决这个场景需求。大力推荐 在线词典助手 (含Anki制卡功能) 这个 Chrome 扩展,插件安装地址。项目的是开源的,代码托管在 Github

安装完毕,简单配置后,可以直接在浏览器进行划词翻译,一键添加到预先配置好的 Anki 词库。个人使用一年多,偶尔遇到不能制卡多是配置失效,重新配置即可。

查单词的同时添加到 Anki

在非浏览器页面遇到生词,查单词后希望添加到 anki,如何解决这个需求呢?具体来说,我查单词的地方默认是命令行,感谢 ydcv,能够在命令行迅速方便的查询单词。但是该工具只是一个非常简单的查词工具,没有更复杂的,例如单词本这样的功能。 最初我是这样解决这个问题的,手动添加了生词本功能。实现的非常简单,就是在查单词的同时,将单词保存到一个文本文件。通过 shell 函数实现:

# youdao  
function s() {
    local spath="${HOME}/sh/ydcv.py"
    $spath $*
    echo $* >> ${HOME}/Dropbox/Dat/words.txt
}

在决定使用 Anki 之后,这个实现当然不够,如何能够让在 ydcv 中查询的单词保存到 Anki 词库呢?前段时间特地抽时间搜索了一下,找到了一个在命令行中与 anki 词库交互的工具 apy,该工具没有采用 Ankiconnect 等接口,可以在 Anki 没有运行的情况下,通过读取 Anki 数据库的方式,直接添加新卡片。那么问题就简单了,我们可以用该工具将使用 ydcv 查询的单词和返回的意思直接添加到 Anki 词库,简单升级下上面的 shell 函数:

# youdao  
function s() {
    local spath="${HOME}/sh/ydcv.py"
    output=$($spath $*)
    echo "$output"
    apy add-single -d Default -m Basic $* $output
    apy sync  
}

该函数的功能就是,查询单词的同时,将单词和返回的意思直接制卡,保存到 Default 词库,使用的模板是 Basic。目前的处理比较粗糙,没有细分音标,意思,短语等字段。希望更进一步细分就需要处理 ydcv 返回的内容了。当然要达到这个目的,直接修改 ydcv 的代码可能更简单。

至此,通过这两个小工具,我们已经可以覆盖在桌面环境遇到的所有生词了,随手查询添加到 Anki。至于移动端,暂时没有找到非常方便的添加到 anki 词库的方法,我猜测通过 shortcuts 应该是可以实现这一点的,奇怪的是没有搜索到相关方案。不过由于本人大部分查单词的场景都在桌面,暂时先放下这个需求。

希望可以帮助到有需求的人,同样,添加单词只是第一步,更重要的是日常的坚持背诵,Anki 的算法非常有效,但是能否克服惰性还是得看个人。努力吧 XD (Flag:希望 2021 年 Anki 的打卡天数能超过300天。


Content