先上为敬:GitHub - chenyanming/paw: Emacs Annotation and Language Learning tool.
讨论群:Telegram: Contact @emacs_paw
开发这个工具的目的有两个:用Emacs学习外语(类似蒙哥阅读器和LingQ那样,点击就能查词,加词,和全文高亮);和阅读的时候添加单词,和高亮笔记。
如果你没听过蒙哥阅读器或者LingQ,可以看看:
以及老爷子Steve的是如何通过大量阅读和听力来学习N种外语的
本工具是阅读为主,配合外部TTS(edge-tts)发音(可能有部分代码缺失没开源,等我慢慢补上),也可以配合org-media-note就能阅读和听力齐齐拿下,搞定任何一个外语了!
一句话,就是蒙哥阅读器和LingQ的Emacs版本,糅合了词典,翻译,笔记,高亮,tts发音,AI,单词本(利用了欧路词典的api,在Emacs添加单词,直接同步到欧路中进行复习,形成收集单词-复习的一个闭环,我也提供了将笔记导出到csv,后期添加到Anki中复习也行!)等众多功能。这个工具是建立在很多前人大佬的肩膀上制作的。你可以看到一下很多工具的身影:
- sdcv
- focus
- eaf
- nov
- go-translate
- gtpel 等等
今天刚好请假做了个小手术,趁闲开源,也终于完成了开源paw.el,解开了我很久的心结,一来我打算私藏算了(我自己认为市面上没有比paw.el更好的外语学习工具了),二来代码好多bug,数据库的格式一直变动,所以,开发它,花费了我整整好几年的时间,从2021年5年开发到现在,中间我自己没有找到paw的定位,插件也搁置在那里,也最近这段时间折腾安卓版Emacs和决心要学习好英语和日语(还有韩语、西班牙语等)才决定将它重新组织并开源,让它能受惠更多人,不再需要市面上的乱七八糟的阅读和外语学习软件了,特别是安卓版的Emacs让移动阅读变得更加方便。时间耗费这么长,是因为在构思上参考了很多市面上手机的阅读apps,外语学习工具等等,本人是阅读app控,基本上市面上的阅读app都试过了,没有一个满意的,有的笔记也无法三端同步(手机,电脑,平板),因此我决心要用Emacs自己弄一套阅读和外语学习系统,我的目的就是打造一整套的学习外语和阅读作笔记的完美方案,就在Emacs,可以用一辈子的最佳方案。
文档和代码仍然很粗糙,等我有时间再更新,大家先凑合用着。英语分词ecdict.el还没开源,等我这几天闲了点再说。。。
安卓版Emacs演示视频在此(也很粗糙,上传视频真难啊,转gif,还是太大了)。。。
Tips:
- 以下截图部分是开了focus mode,配合focus mode和句子的分词(segmentation),tts发音,自动翻译,就可以实现类似LingQ的sentence mode(逐句学习),对学习一门新的外语非常有用。
- 当你开了paw-annatation-mode,你会发现鼠标mouse 1绑定了一个快捷键,只要不懂哪里点哪里,自动查词和翻译,会根据语言,是否拉选,是否在focus mode等等,来实现实了蒙哥的"点一下就查词"的功能,在安卓版Emacs尤其有用。
- 查词和翻译函数: paw-view-note可以在任何buffer调用,不过paw-view-note仅仅是sdcv和go-translate,作为第一步的查词(实际应用上,有sdcv和go-translate已经足够了,效率和查询速度也非常快,本插件增强了sdcv,每次查词都开一个新进程,结果出来后才更新,不会卡Emacs),如果不满意,可以再利用外部工具查,不强调所有查词功能都在Emacs中做。而且鼓励用户添加单词的时候添加一个Saved meanings,然后当下次再查这个词的时候,就优先显示Saved Meanings,基本上一个单词只要记住一个意思就够了,这点也是模仿了LingQ。而不是同一个单词查无数次的死循环。
- 添加单词用paw-add-online-word就可以加到欧路,不加’意思’也可以的!因为受欧路Api的限制,'意思’无法同步到欧路。你可以直接在欧路上利用复习功能复习单词。
- 全面支持欧路的单词本API,可以在Emacs实现同步,添加,删除,和单词本管理,在paw可以批量选择单词然后进行换单词本的操作(对喜欢先添加单词,后期再整理单词本的人非常有用)。具体请看代码。有空再加文档。
电脑截图: 英语的segmentation和离线词语分析,可以按照各种等级过滤自动查词(需要Ecdict,等待我补上):
英语网页查词(这里用了popwin,你也可以用eaf或者外部浏览器):
goldendict查词(Linux):
日语的segmentation和离线词语分析:
开启paw-posframe-p
, 目前posframe有bug:
开启paw-posframe-p
, 目前posframe有bug:
配合org-media-note学习(待我补上缺失的代码):