3 个稳定版本
1.1.0 | 2020 年 10 月 15 日 |
---|---|
1.0.1 | 2020 年 9 月 14 日 |
1.0.0 | 2020 年 9 月 12 日 |
#186 in 可视化
73KB
930 行
简介
Vocage 是一个基于终端的最小化词汇学习工具。它使用间隔重复算法(例如 Leitner)呈现闪卡;你熟悉单词会越来越少地呈现,而有困难的单词会更多地重复。你可以快速在牌组/单词之间移动,每个牌组都有一个相关的呈现间隔。
你可以使用 Vocage 做任何使用闪卡的事情,不仅限于学习语言。
该软件的目标是保持简单和最小化,并专注于一件事情(Unix 哲学)。
功能 & 非功能
- 数据存储在简单的纯文本制表符分隔值格式(TSV)中。因此,你可以在你最喜欢的文本编辑器或电子表格程序中编辑你的牌组(使用 CSV 导出并设置分隔符为制表符和引号为无)。Vocage 本身不提供编辑功能。
- 所有以
#
开头的行都被视为注释。这也用于快速禁用一些牌组而不实际删除它们。
- 所有以
- 你的学习进度直接存储在 TSV 文件中,只需为牌组添加一列,为何时到期添加一列即可。这使一切都在一个地方(没有外部配置/库文件),并易于外部工具处理。如果你愿意,可以将你的词汇集放在 git 中。
- 配置通过 命令行参数 完成,这些参数 也可以存储为 TSV 文件的末尾的注释,以便快速加载
- 列由第一行的标题行(大写!)定义,或更明确地使用
--columns
。 - 使用
--showcards
确定要在牌组的哪一侧显示哪些列,它可以多次调用,每次调用一次每一侧。传统上,一张牌有一面正面和一面背面,但你可以定义任意多的面。 - 定义牌组名称及其间隔。
- 合理的默认值;如果没有指定配置,将使用一些合理的默认值。
- 列由第一行的标题行(大写!)定义,或更明确地使用
- 同时加载多个词汇文件(TSV格式),前提是它们具有相同的列布局。这允许您使用文件作为简单的分组机制(例如,每个级别、每个领域或每个词类的文件)。
- 可以通过设置
--minimal
参数来禁用“花哨”的TUI,如果您想通过shell脚本或其他软件与voca交互。 - 良好的Unicode支持
- 颜色支持,每列都分配一个颜色(在
--minimal
模式下可以禁用) - 箭头键和vim风格的移动(
hjkl
) - 用Rust编写的;快速且高效
安装
使用Rust的包管理器安装vocage
cargo install vocage
您的系统上还没有cargo/rust吗?在基于Debian/ubuntu的系统上,请使用sudo apt install cargo
,在mac上使用brew install rust
,或使用rustup。
Arch Linux用户可以直接从Arch用户仓库安装vocage:https://aur.archlinux.org/packages/vocage-git/(例如:yay -S vocage-git
)
使用方法
输入vocage --help
以获取完整的参数概览。
快速开始
准备一些TSV格式的数据,例如这里
$ vocage yourdata.tsv
键盘绑定
- 空格/回车 - “翻转”卡片,显示下一面(即答案)
- 向下箭头/
j
- 在同一副牌中保持卡片并转到下一张卡片(通常是一个随机卡片,除非您处于有序模式) - PageDown/
J
- 跳过卡片(它可能立即在同一会话中再次显示)并转到下一张卡片(将选择一个随机卡片) - 向上箭头/
k
- 现在跳过这张卡片并转到前一张卡片 - 向右箭头/
l
- 将此卡片提升到下一副牌 - 向左箭头/
h
- 将此卡片提升到前一副牌 - 数字键 - 将卡片移动到第n副牌
w
- 保存进度(输入文件将被修改)q
- 退出(如果有未保存的更改,将要求确认)Q
- 退出(不保存,不要求确认)a
- 在显示所有卡片和仅显示待办卡片之间切换(默认)--all
s
- 在显示未查看的卡片(默认)和仅显示之前已显示的卡片之间切换--seen
z
- 在有序模式和随机模式(默认)之间切换--ordered
。在有序模式下,卡片将按其定义的顺序显示。
依赖项
~3MB
~39K SLoC