💡 演示
📸 安装
VSCode Plugin Market
Github 项目源码
本项目为 Qwerty Learner 的 VSCode 插件版本,访问原始项目获得更好的体验。网页版: https://qwerty.kaiyi.cool/
✨ 实现原理
因为 VSC 没有提供对 Keypress 的回调,所以实现上使用了较为取巧的方式,监听用户当前输入文档的改变,然后删除用户输入。 用户可以在任意代码、文档页面开启软件进行英语打字练习,插件会自动删除用户输入的文字,不会对文档内容造成影响。
即,当着老板的面背单词也不会被发现,还会认为你键盘敲得贼响,代码一定写的很认真(🐶逃
💭 设计思想
软件设计的目标群体为以英语作为主要工作语言的键盘工作者。部分人会出现输入母语时的打字速度快于英语的情况,因为多年的母语输入练就了非常坚固的肌肉记忆 💪,而英语输入的肌肉记忆相对较弱,易出现输入英语时“提笔忘字”的现象。
同时为了巩固英语技能,也需要持续的背诵单词 📕,本软件将英语单词的记忆与英语键盘输入的肌肉记忆的锻炼相结合,可以在背诵单词的同时巩固肌肉记忆。
为了避免造成错误的肌肉记忆,设计上如果用户单词输入错误则需要重新输入单词,尽可能确保用户维持正确的肌肉记忆。
软件也对需要机考英语的人群有一定的帮助。
For Coder:
内置了程序员工作常用单词的词库,方便练习工作中常用的单词、提高输入速度。也内置了诸多语言的 API 的练习,帮助以程序员快速熟悉常用的 API ,更多语言的 API 正在逐步添加中...
🏠 为开源贡献力量
项目的源项目 和 vscode 插件版 都在持续招募来自社区的开源贡献者,感兴趣可以查看相关 Issue
🎛 使用说明
一键启动
Mac Control + Shift + Q
Win Shift + Alt + Q
可以在任意文档中使用快捷键启动,启动后插件将屏蔽用户对文档的输入,只需关注状态栏上的单词即可。
⚠️ 切记需关闭中文输入法,目前插件在开启中文输入法会有 Bug ,待修复
章节、词典选择
打开 VSCode 命令面板,通过 “Qwerty” 前缀过滤,即可发现插件内置的命令。
命令面板快捷键
Mac: cmd + shift + p
Win: ctrl + shift + p
进阶配置
可以在设置面板查找关键字 “Qwerty” 修改设置
"qwerty-learner.highlightWrongColor": {
"type": "string",
"default": "#EE3D11",
"description": "输入错误时单词的颜色"
},
"qwerty-learner.highlightWrongDelay": {
"type": "number",
"default": 400,
"description": "输入错误时清空输入的延迟时间"
},
"qwerty-learner.keySound": {
"type": "boolean",
"default": true,
"description": "是否开启键盘音"
},
"qwerty-learner.phonetic": {
"type": "string",
"enum": [
"us",
"uk",
"close"
],
"default": "close",
"description": "是否开启音标"
},
"qwerty-learner.chapterLength": {
"type": "integer",
"default": 20,
"minimum": 1,
"maximum": 100,
"description": "每个章节包含的单词数量"
},
"qwerty-learner.wordExerciseTime": {
"type": "integer",
"default": 1,
"minimum": 1,
"maximum": 100,
"description": "每个单词的练习次数"
},
"qwerty-learner.readOnlyInterval": {
"type": "number",
"default": 5000,
"description": "只读模式中单词切换间隔时间(ms)"
},
"qwerty-learner.voiceType": {
"type": "string",
"enum": [
"us",
"uk",
"close"
],
"default": "us",
"description": "是否开启发音"
},
"qwerty-learner.placeholder": {
"type": "string",
"enum": [
"_",
"*",
"-",
""
],
"default": "-",
"description": "未输入时的占位符,空表示无占位符(仅当 wordVisibility === true 时生效)"
},
"qwerty-learner.random": {
"type": "boolean",
"default": false,
"description": "是否章节内单词顺序随机"
}