Qwerty Learner VSCode
为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 VSCode 摸🐟版
## 💡 演示
## 📸 安装
[VSCode Plugin Market](https://marketplace.visualstudio.com/items?itemName=Kaiyi.qwerty-learner)
本项目为 [Qwerty Learner](https://github.com/Kaiyiwing/qwerty-learner) 的 VSCode 插件版本,访问原始项目获得更好的体验。
## ✨ 实现原理
因为 VSC 没有提供对 Keypress 的回调,所以实现上使用了较为取巧的方式,监听用户当前输入文档的改变,然后删除用户输入。 用户可以在任意代码、文档页面开启软件进行英语打字练习,插件会自动删除用户输入的文字,不会对文档内容造成影响。
目前存在的 Bug,在用户输入速度较快(特别是同时按下多个键)时,可能会导致删除不完全,用户自行删除输入即可。
## 🎛 使用说明
### 一键启动
**Mac** `Control + Shift + Q`
**Win** `Shift + Alt + Q`
可以在任意文档中使用快捷键启动,启动后插件将屏蔽用户对文档的输入,只需关注状态栏上的单词即可。
**⚠️ 切记需关闭中文输入法**,目前插件在开启中文输入法会有 Bug,待修复
### 章节、词典选择
打开 VSCode 命令面板,通过 “Qwerty” 前缀过滤,即可发现插件内置的命令。
- Change Chapter 可以切换章节
- Change Dictionary 可以切换字典
- Start/Pause 可以开关插件,功能等价于一键启动快捷键
- Toggle Word Visibility 切换是否展示单词(默写模式)
- Toggle Read Only Mode 开关只读模式
- Toggle Chapter Cycle Mode 章节循环模式
命令面板快捷键
Mac: `cmd + shift + p`
Win: `ctrl + shift + p`
### 快捷配置
这里列出了用于启用/禁用章节循环模式的快捷键配置。章节循环模式默认情况下是禁用的。
- **Mac**: 使用键盘快捷键 `Control + Shift + C` 可以启用/禁用章节循环模式。
- **Win**: 使用键盘快捷键 `Shift + Alt + C` 可以启用/禁用章节循环模式。
### 进阶配置
可以在设置面板查找关键字 “Qwerty” 修改设置
```json
"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": "是否章节内单词顺序随机"
},
"qwerty-learner.chapterCycle": {
"type": "boolean",
"default": false,
"description": "是否章节循环"
}
```
## 📕 词库列表
- CET-4
- CET-6
- GMAT
- GRE
- IELTS
- 考研
- 专四
- 专八
- 高考 3500 词
- SAT
- TOEFL
- 商务英语
- BEC
- Coder Dict
- JS: Array
- JS: Date
- JS: Global
- JS: Map & Set
- JS: Math
- JS: Number
- JS: Object
- JS: Promise
- JS: String
- Python: Built-in
- Python: array
- Python: date
- Python: file
- Python: class
- Python: set
- Python: math
- Python: string
- Python: system
- Java: ArrayList
- Java: Character
- Java: Hashmap
- Java: LinkedList
- Java: String
- Java: StringBuffer
- Linux
- C#: List API
- 新概念英语-1
- 新概念英语-2
- 新概念英语-3
- 新概念英语-4
- SAT en-en
- Essential Words
- Essential Words
- suffix word
- word roots1
- ...
## 🌟 Stargazers over time
[![Stargazers over time](https://starchart.cc/Kaiyiwing/qwerty-learner-vscode)](https://starchart.cc/Kaiyiwing/qwerty-learner-vscode)