vimniscient 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vimniscient/__init__.py +3 -0
- vimniscient/__main__.py +3 -0
- vimniscient/answer.py +113 -0
- vimniscient/app.py +310 -0
- vimniscient/cards/foot.yaml +19 -0
- vimniscient/cards/lazyvim.yaml +80 -0
- vimniscient/cards/shell.yaml +22 -0
- vimniscient/cards/vim.yaml +95 -0
- vimniscient/cards/zathura.yaml +32 -0
- vimniscient/cards.py +200 -0
- vimniscient/cli.py +98 -0
- vimniscient/drills/omarchy.yaml +88 -0
- vimniscient/drills.py +198 -0
- vimniscient/endless.py +60 -0
- vimniscient/generate.py +102 -0
- vimniscient/habits.py +116 -0
- vimniscient/keys.py +14 -0
- vimniscient/lessons/sources.md +59 -0
- vimniscient/lessons/w1d1-words.yaml +223 -0
- vimniscient/lessons/w1d2-pairs.yaml +188 -0
- vimniscient/lessons/w1d3-sentences.yaml +247 -0
- vimniscient/lessons/w1d4-find.yaml +184 -0
- vimniscient/lessons/w1d5-lines.yaml +249 -0
- vimniscient/lessons/w1d6-counts.yaml +351 -0
- vimniscient/lessons/w1d7-review.yaml +222 -0
- vimniscient/lessons/w2d1-dot.yaml +195 -0
- vimniscient/lessons/w2d2-search.yaml +194 -0
- vimniscient/lessons/w2d3-cgn.yaml +196 -0
- vimniscient/lessons/w2d4-case-numbers.yaml +201 -0
- vimniscient/lessons/w2d5-insert.yaml +229 -0
- vimniscient/lessons/w2d6-visual.yaml +206 -0
- vimniscient/lessons/w2d7-review.yaml +197 -0
- vimniscient/lessons/w3d1-macros.yaml +240 -0
- vimniscient/lessons/w3d2-macros-more.yaml +170 -0
- vimniscient/lessons/w3d3-registers.yaml +230 -0
- vimniscient/lessons/w3d4-marks.yaml +188 -0
- vimniscient/lessons/w3d5-visual-block.yaml +201 -0
- vimniscient/lessons/w3d6-substitute.yaml +290 -0
- vimniscient/lessons/w3d7-review.yaml +204 -0
- vimniscient/lessons/w4d1-ranges.yaml +214 -0
- vimniscient/lessons/w4d2-sort-filter.yaml +243 -0
- vimniscient/lessons/w4d3-regex.yaml +167 -0
- vimniscient/lessons/w4d4-norm.yaml +158 -0
- vimniscient/lessons/w4d5-motions.yaml +149 -0
- vimniscient/lessons/w4d6-indent.yaml +143 -0
- vimniscient/lessons/w4d7-review.yaml +175 -0
- vimniscient/lessons/w5d1-arguments.yaml +133 -0
- vimniscient/lessons/w5d2-any-quote-bracket.yaml +136 -0
- vimniscient/lessons/w5d3-functions.yaml +193 -0
- vimniscient/lessons/w5d4-small-objects.yaml +185 -0
- vimniscient/lessons/w5d5-comments.yaml +161 -0
- vimniscient/lessons/w5d6-review.yaml +120 -0
- vimniscient/lessons/w6d1-code.yaml +157 -0
- vimniscient/lessons/w6d2-notes.yaml +163 -0
- vimniscient/lessons/w6d3-data.yaml +145 -0
- vimniscient/lessons.py +184 -0
- vimniscient/mnemonics.py +141 -0
- vimniscient/mnemonics.yaml +124 -0
- vimniscient/nvim/keymaps.lua +25 -0
- vimniscient/nvim/runner.lua +711 -0
- vimniscient/progress.py +496 -0
- vimniscient/reminders.py +220 -0
- vimniscient/session.py +152 -0
- vimniscient/settings.py +33 -0
- vimniscient/srs.py +56 -0
- vimniscient/today.py +189 -0
- vimniscient/ui/__init__.py +1 -0
- vimniscient/ui/builtin_lessons.py +99 -0
- vimniscient/ui/cards.py +160 -0
- vimniscient/ui/common.py +129 -0
- vimniscient/ui/drills.py +163 -0
- vimniscient/ui/lesson.py +193 -0
- vimniscient/ui/main.py +217 -0
- vimniscient/ui/stats.py +145 -0
- vimniscient/vimgolf.py +97 -0
- vimniscient-0.2.0.dist-info/METADATA +322 -0
- vimniscient-0.2.0.dist-info/RECORD +80 -0
- vimniscient-0.2.0.dist-info/WHEEL +4 -0
- vimniscient-0.2.0.dist-info/entry_points.txt +2 -0
- vimniscient-0.2.0.dist-info/licenses/LICENSE +661 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
week: 2
|
|
2
|
+
day: 3
|
|
3
|
+
title: The cgn trick
|
|
4
|
+
intro: |
|
|
5
|
+
`gn` reads as *go to the next match* and grab it: it selects the next
|
|
6
|
+
search match. So `cgn` changes the next match, and `.` then changes the one
|
|
7
|
+
after that, and the one after that. Search once (with `/` or `*`), `cgn`
|
|
8
|
+
the first, then press `.` per match. Press `n` to skip one you want to
|
|
9
|
+
keep. `dgn` deletes matches the same way.
|
|
10
|
+
keys: ['cgn', 'dgn', '*cgn', 'n.']
|
|
11
|
+
tasks:
|
|
12
|
+
- goal: 'Rename every hit to next_match.'
|
|
13
|
+
ft: python
|
|
14
|
+
start: |-
|
|
15
|
+
▮hit = search()
|
|
16
|
+
grab(hit)
|
|
17
|
+
change(hit)
|
|
18
|
+
target: |-
|
|
19
|
+
next_match = search()
|
|
20
|
+
grab(next_match)
|
|
21
|
+
change(next_match)
|
|
22
|
+
solution: '*cgnnext_match<Esc>..'
|
|
23
|
+
hint: '* sets the search; cgn changes one match; . does the rest (it wraps around).'
|
|
24
|
+
variants:
|
|
25
|
+
- goal: 'Rename every cram to spaced.'
|
|
26
|
+
start: |-
|
|
27
|
+
▮cram = plan()
|
|
28
|
+
study(cram)
|
|
29
|
+
review(cram)
|
|
30
|
+
target: |-
|
|
31
|
+
spaced = plan()
|
|
32
|
+
study(spaced)
|
|
33
|
+
review(spaced)
|
|
34
|
+
solution: '*cgnspaced<Esc>..'
|
|
35
|
+
- goal: 'Rename every reread to retrieve.'
|
|
36
|
+
start: |-
|
|
37
|
+
▮reread = plan()
|
|
38
|
+
study(reread)
|
|
39
|
+
log(reread)
|
|
40
|
+
target: |-
|
|
41
|
+
retrieve = plan()
|
|
42
|
+
study(retrieve)
|
|
43
|
+
log(retrieve)
|
|
44
|
+
solution: '*cgnretrieve<Esc>..'
|
|
45
|
+
- goal: 'Rename every x to match.'
|
|
46
|
+
start: |-
|
|
47
|
+
▮x = gn()
|
|
48
|
+
c(x)
|
|
49
|
+
dot(x)
|
|
50
|
+
target: |-
|
|
51
|
+
match = gn()
|
|
52
|
+
c(match)
|
|
53
|
+
dot(match)
|
|
54
|
+
solution: '*cgnmatch<Esc>..'
|
|
55
|
+
- goal: 'Rename every massed to spaced.'
|
|
56
|
+
start: |-
|
|
57
|
+
▮massed = schedule()
|
|
58
|
+
run(massed)
|
|
59
|
+
save(massed)
|
|
60
|
+
target: |-
|
|
61
|
+
spaced = schedule()
|
|
62
|
+
run(spaced)
|
|
63
|
+
save(spaced)
|
|
64
|
+
solution: '*cgnspaced<Esc>..'
|
|
65
|
+
- goal: 'Change the first and the last "the" to "a", keep the middle one.'
|
|
66
|
+
start: |-
|
|
67
|
+
▮the change, the skip and the repeat
|
|
68
|
+
target: |-
|
|
69
|
+
a change, the skip and a repeat
|
|
70
|
+
solution: '*Ncgna<Esc>nn.'
|
|
71
|
+
hint: '* then N to go back to the first; cgna<Esc> changes; n n skips one; . repeats on the last.'
|
|
72
|
+
variants:
|
|
73
|
+
- goal: 'Change the first and the last "the" to "a", keep the middle one.'
|
|
74
|
+
start: |-
|
|
75
|
+
▮the vowel, the glide and the stop
|
|
76
|
+
target: |-
|
|
77
|
+
a vowel, the glide and a stop
|
|
78
|
+
- start: |-
|
|
79
|
+
▮the star, the next and the dot
|
|
80
|
+
target: |-
|
|
81
|
+
a star, the next and a dot
|
|
82
|
+
- start: |-
|
|
83
|
+
▮the test, the wait and the retest
|
|
84
|
+
target: |-
|
|
85
|
+
a test, the wait and a retest
|
|
86
|
+
- start: |-
|
|
87
|
+
▮the cue, the gap and the recall
|
|
88
|
+
target: |-
|
|
89
|
+
a cue, the gap and a recall
|
|
90
|
+
- goal: 'Replace "very weak" with "strong" on both lines.'
|
|
91
|
+
start: |-
|
|
92
|
+
▮Spaced recall is very weak.
|
|
93
|
+
Tested recall is very weak.
|
|
94
|
+
target: |-
|
|
95
|
+
Spaced recall is strong.
|
|
96
|
+
Tested recall is strong.
|
|
97
|
+
solution: '/very weak<CR>cgnstrong<Esc>.'
|
|
98
|
+
hint: 'Search for the phrase, cgn changes the whole match, . the next one.'
|
|
99
|
+
variants:
|
|
100
|
+
- goal: 'Replace "the last" with "the next" on both lines.'
|
|
101
|
+
start: |-
|
|
102
|
+
▮gn goes to the last match.
|
|
103
|
+
cgn changes the last match.
|
|
104
|
+
target: |-
|
|
105
|
+
gn goes to the next match.
|
|
106
|
+
cgn changes the next match.
|
|
107
|
+
solution: '/the last<CR>cgnthe next<Esc>.'
|
|
108
|
+
- goal: 'Replace "is best" with "fades" on both lines.'
|
|
109
|
+
start: |-
|
|
110
|
+
▮Massed practice is best.
|
|
111
|
+
Cramming practice is best.
|
|
112
|
+
target: |-
|
|
113
|
+
Massed practice fades.
|
|
114
|
+
Cramming practice fades.
|
|
115
|
+
solution: '/is best<CR>cgnfades<Esc>.'
|
|
116
|
+
- goal: 'Replace "one match" with "the next match" on both lines.'
|
|
117
|
+
start: |-
|
|
118
|
+
▮cgn changes one match.
|
|
119
|
+
The dot changes one match.
|
|
120
|
+
target: |-
|
|
121
|
+
cgn changes the next match.
|
|
122
|
+
The dot changes the next match.
|
|
123
|
+
solution: '/one match<CR>cgnthe next match<Esc>.'
|
|
124
|
+
- goal: 'Replace "high utility" with "low utility" on both lines.'
|
|
125
|
+
start: |-
|
|
126
|
+
▮Highlighting is high utility.
|
|
127
|
+
Rereading is high utility.
|
|
128
|
+
target: |-
|
|
129
|
+
Highlighting is low utility.
|
|
130
|
+
Rereading is low utility.
|
|
131
|
+
solution: '/high utility<CR>cgnlow utility<Esc>.'
|
|
132
|
+
- goal: 'Change all four n to dot.'
|
|
133
|
+
start: |-
|
|
134
|
+
echo ▮n; echo n; echo n; echo n
|
|
135
|
+
target: |-
|
|
136
|
+
echo dot; echo dot; echo dot; echo dot
|
|
137
|
+
solution: '*cgndot<Esc>...'
|
|
138
|
+
hint: 'Same trick: * then cgn, then . for each remaining match.'
|
|
139
|
+
variants:
|
|
140
|
+
- goal: 'Change all four tmp to out.'
|
|
141
|
+
start: |-
|
|
142
|
+
cp ▮tmp; cp tmp; cp tmp; cp tmp
|
|
143
|
+
target: |-
|
|
144
|
+
cp out; cp out; cp out; cp out
|
|
145
|
+
solution: '*cgnout<Esc>...'
|
|
146
|
+
- goal: 'Change all four it to again.'
|
|
147
|
+
start: |-
|
|
148
|
+
say ▮it; say it; say it; say it
|
|
149
|
+
target: |-
|
|
150
|
+
say again; say again; say again; say again
|
|
151
|
+
solution: '*cgnagain<Esc>...'
|
|
152
|
+
- goal: 'Change all four old to new.'
|
|
153
|
+
start: |-
|
|
154
|
+
mv ▮old; mv old; mv old; mv old
|
|
155
|
+
target: |-
|
|
156
|
+
mv new; mv new; mv new; mv new
|
|
157
|
+
solution: '*cgnnew<Esc>...'
|
|
158
|
+
- goal: 'Change all four cram to space.'
|
|
159
|
+
start: |-
|
|
160
|
+
test ▮cram; test cram; test cram; test cram
|
|
161
|
+
target: |-
|
|
162
|
+
test space; test space; test space; test space
|
|
163
|
+
solution: '*cgnspace<Esc>...'
|
|
164
|
+
- goal: 'Delete every "um, ".'
|
|
165
|
+
start: |-
|
|
166
|
+
dgn ▮um, deletes um, the next match um, each time.
|
|
167
|
+
target: |-
|
|
168
|
+
dgn deletes the next match each time.
|
|
169
|
+
solution: '/um, <CR>dgn..'
|
|
170
|
+
hint: 'dgn deletes the next match. Search for "um, " with the space.'
|
|
171
|
+
variants:
|
|
172
|
+
- goal: 'Delete every "like, ".'
|
|
173
|
+
start: |-
|
|
174
|
+
It's ▮like, a word that is like, just like, filler.
|
|
175
|
+
target: |-
|
|
176
|
+
It's a word that is just filler.
|
|
177
|
+
solution: '/like, <CR>dgn..'
|
|
178
|
+
hint: 'dgn deletes the next match. Search for "like, " with the space.'
|
|
179
|
+
- goal: 'Delete every "so, ".'
|
|
180
|
+
start: |-
|
|
181
|
+
dgn ▮so, deletes so, every match so, in turn.
|
|
182
|
+
target: |-
|
|
183
|
+
dgn deletes every match in turn.
|
|
184
|
+
solution: '/so, <CR>dgn..'
|
|
185
|
+
- goal: 'Delete every "uh, ".'
|
|
186
|
+
start: |-
|
|
187
|
+
Spacing ▮uh, beats uh, cramming uh, easily.
|
|
188
|
+
target: |-
|
|
189
|
+
Spacing beats cramming easily.
|
|
190
|
+
solution: '/uh, <CR>dgn..'
|
|
191
|
+
- goal: 'Delete every "er, ".'
|
|
192
|
+
start: |-
|
|
193
|
+
Testing ▮er, beats er, rereading er, later.
|
|
194
|
+
target: |-
|
|
195
|
+
Testing beats rereading later.
|
|
196
|
+
solution: '/er, <CR>dgn..'
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
week: 2
|
|
2
|
+
day: 4
|
|
3
|
+
title: Case and numbers
|
|
4
|
+
intro: |
|
|
5
|
+
`~` flips the case of one character: the tilde is a little wave. `gU`, `gu`
|
|
6
|
+
and `g~` are operators: U is *up* (capitals), u is down. `gUiw` uppercases
|
|
7
|
+
a word, `guu` lowercases a line. `Ctrl-a` *adds* one to the next number on
|
|
8
|
+
the line and `Ctrl-x` crosses one out; with a count, `30 Ctrl-a` adds
|
|
9
|
+
thirty. The cursor doesn't need to be on the number.
|
|
10
|
+
keys: ["~", gUiw, guu, g~iw, "<C-a>", "<C-x>"]
|
|
11
|
+
tasks:
|
|
12
|
+
- goal: 'Capitalise the first letter.'
|
|
13
|
+
start: |-
|
|
14
|
+
▮tilde flips one letter
|
|
15
|
+
target: |-
|
|
16
|
+
Tilde flips one letter
|
|
17
|
+
solution: '~'
|
|
18
|
+
hint: '~ flips the case of the character under the cursor.'
|
|
19
|
+
variants:
|
|
20
|
+
- goal: 'Capitalise the name.'
|
|
21
|
+
start: |-
|
|
22
|
+
▮ebbinghaus tested himself
|
|
23
|
+
target: |-
|
|
24
|
+
Ebbinghaus tested himself
|
|
25
|
+
- goal: 'Capitalise the name.'
|
|
26
|
+
start: |-
|
|
27
|
+
▮miller wrote about seven
|
|
28
|
+
target: |-
|
|
29
|
+
Miller wrote about seven
|
|
30
|
+
- goal: 'Capitalise the first letter.'
|
|
31
|
+
start: |-
|
|
32
|
+
▮the tilde is a wave
|
|
33
|
+
target: |-
|
|
34
|
+
The tilde is a wave
|
|
35
|
+
- goal: 'Capitalise the name.'
|
|
36
|
+
start: |-
|
|
37
|
+
▮cowan argued for four
|
|
38
|
+
target: |-
|
|
39
|
+
Cowan argued for four
|
|
40
|
+
- goal: 'Uppercase "up".'
|
|
41
|
+
start: |-
|
|
42
|
+
gU raises ▮up to capitals
|
|
43
|
+
target: |-
|
|
44
|
+
gU raises UP to capitals
|
|
45
|
+
solution: 'gUiw'
|
|
46
|
+
hint: 'gU is the uppercase operator; iw is the word.'
|
|
47
|
+
variants:
|
|
48
|
+
- goal: 'Uppercase "srs".'
|
|
49
|
+
start: |-
|
|
50
|
+
an ▮srs schedules your reviews
|
|
51
|
+
target: |-
|
|
52
|
+
an SRS schedules your reviews
|
|
53
|
+
- goal: 'Uppercase "url".'
|
|
54
|
+
start: |-
|
|
55
|
+
gU sends the ▮url up to capitals
|
|
56
|
+
target: |-
|
|
57
|
+
gU sends the URL up to capitals
|
|
58
|
+
- goal: 'Uppercase "pspi".'
|
|
59
|
+
start: |-
|
|
60
|
+
Dunlosky's 2013 review is in ▮pspi
|
|
61
|
+
target: |-
|
|
62
|
+
Dunlosky's 2013 review is in PSPI
|
|
63
|
+
- goal: 'Uppercase "tla".'
|
|
64
|
+
start: |-
|
|
65
|
+
a ▮tla is a three-letter acronym
|
|
66
|
+
target: |-
|
|
67
|
+
a TLA is a three-letter acronym
|
|
68
|
+
- goal: 'Make the whole line lowercase.'
|
|
69
|
+
start: |-
|
|
70
|
+
▮GU LOWERS THE WHOLE LINE
|
|
71
|
+
target: |-
|
|
72
|
+
gu lowers the whole line
|
|
73
|
+
solution: 'guu'
|
|
74
|
+
hint: 'guu lowercases the line (gu + u, like dd).'
|
|
75
|
+
variants:
|
|
76
|
+
- goal: 'Make the whole line lowercase.'
|
|
77
|
+
start: |-
|
|
78
|
+
▮DON'T SHOUT THE GLOSSES
|
|
79
|
+
target: |-
|
|
80
|
+
don't shout the glosses
|
|
81
|
+
- start: |-
|
|
82
|
+
▮LOWERCASE IS QUIETER
|
|
83
|
+
target: |-
|
|
84
|
+
lowercase is quieter
|
|
85
|
+
- start: |-
|
|
86
|
+
▮SPACING BEATS CRAMMING
|
|
87
|
+
target: |-
|
|
88
|
+
spacing beats cramming
|
|
89
|
+
- start: |-
|
|
90
|
+
▮NO NEED TO SHOUT A REVIEW
|
|
91
|
+
target: |-
|
|
92
|
+
no need to shout a review
|
|
93
|
+
- goal: 'Make the sentence true: Ctrl-a adds 1.'
|
|
94
|
+
start: |-
|
|
95
|
+
▮Ctrl-a adds 0 to the number
|
|
96
|
+
target: |-
|
|
97
|
+
Ctrl-a adds 1 to the number
|
|
98
|
+
solution: '<C-a>'
|
|
99
|
+
hint: 'Ctrl-a adds one to the next number on the line.'
|
|
100
|
+
variants:
|
|
101
|
+
- goal: 'Fitts and Posner named three stages of skill: fix the number.'
|
|
102
|
+
start: |-
|
|
103
|
+
▮Fitts and Posner named 2 stages of skill
|
|
104
|
+
target: |-
|
|
105
|
+
Fitts and Posner named 3 stages of skill
|
|
106
|
+
- goal: 'Ebbinghaus was born in 1850: fix the year.'
|
|
107
|
+
start: |-
|
|
108
|
+
▮Ebbinghaus was born in 1849
|
|
109
|
+
target: |-
|
|
110
|
+
Ebbinghaus was born in 1850
|
|
111
|
+
- goal: 'Miller''s magical number is seven: fix it.'
|
|
112
|
+
start: |-
|
|
113
|
+
▮Miller's number is 6, plus or minus two
|
|
114
|
+
target: |-
|
|
115
|
+
Miller's number is 7, plus or minus two
|
|
116
|
+
- goal: 'Roediger and Karpicke published in 2006: fix the year.'
|
|
117
|
+
start: |-
|
|
118
|
+
▮Roediger and Karpicke published in 2005
|
|
119
|
+
target: |-
|
|
120
|
+
Roediger and Karpicke published in 2006
|
|
121
|
+
- goal: 'Ebbinghaus published in 1885: add 30 to the year.'
|
|
122
|
+
start: |-
|
|
123
|
+
▮Ebbinghaus published in 1855
|
|
124
|
+
target: |-
|
|
125
|
+
Ebbinghaus published in 1885
|
|
126
|
+
solution: '30<C-a>'
|
|
127
|
+
hint: 'With a count, Ctrl-a adds that many.'
|
|
128
|
+
variants:
|
|
129
|
+
- goal: 'Miller''s magical number came out in 1956: add 30 to the year.'
|
|
130
|
+
start: |-
|
|
131
|
+
▮Miller's magical number came out in 1926
|
|
132
|
+
target: |-
|
|
133
|
+
Miller's magical number came out in 1956
|
|
134
|
+
- goal: 'Cowan''s magical number four came out in 2001: add 30 to the year.'
|
|
135
|
+
start: |-
|
|
136
|
+
▮Cowan's magical number four came out in 1971
|
|
137
|
+
target: |-
|
|
138
|
+
Cowan's magical number four came out in 2001
|
|
139
|
+
- goal: 'Fitts and Posner''s Human Performance came out in 1967: add 30 to the year.'
|
|
140
|
+
start: |-
|
|
141
|
+
▮Fitts and Posner's Human Performance came out in 1937
|
|
142
|
+
target: |-
|
|
143
|
+
Fitts and Posner's Human Performance came out in 1967
|
|
144
|
+
- goal: 'Dunlosky and colleagues rated learning techniques in 2013: add 30 to the year.'
|
|
145
|
+
start: |-
|
|
146
|
+
▮Dunlosky and colleagues rated learning techniques in 1983
|
|
147
|
+
target: |-
|
|
148
|
+
Dunlosky and colleagues rated learning techniques in 2013
|
|
149
|
+
- goal: 'Make the sentence true: 3 take away 1 leaves 2.'
|
|
150
|
+
start: |-
|
|
151
|
+
▮Ctrl-x leaves 3 when you take 1 from 3
|
|
152
|
+
target: |-
|
|
153
|
+
Ctrl-x leaves 2 when you take 1 from 3
|
|
154
|
+
solution: '<C-x>'
|
|
155
|
+
hint: 'Ctrl-x takes one away from the next number.'
|
|
156
|
+
variants:
|
|
157
|
+
- goal: 'Cowan''s estimate is about four chunks: fix the number.'
|
|
158
|
+
start: |-
|
|
159
|
+
▮Cowan's working memory holds about 5 chunks
|
|
160
|
+
target: |-
|
|
161
|
+
Cowan's working memory holds about 4 chunks
|
|
162
|
+
- goal: 'Fitts and Posner named three stages: fix the number.'
|
|
163
|
+
start: |-
|
|
164
|
+
▮Fitts and Posner named 4 stages of skill
|
|
165
|
+
target: |-
|
|
166
|
+
Fitts and Posner named 3 stages of skill
|
|
167
|
+
- goal: 'Miller''s magical number is seven: fix it.'
|
|
168
|
+
start: |-
|
|
169
|
+
▮Miller's magical number is 8, plus or minus two
|
|
170
|
+
target: |-
|
|
171
|
+
Miller's magical number is 7, plus or minus two
|
|
172
|
+
- goal: 'Ebbinghaus published in 1885: fix the year.'
|
|
173
|
+
start: |-
|
|
174
|
+
▮Ebbinghaus published Über das Gedächtnis in 1886
|
|
175
|
+
target: |-
|
|
176
|
+
Ebbinghaus published Über das Gedächtnis in 1885
|
|
177
|
+
- goal: 'Flip the case of the first word.'
|
|
178
|
+
start: |-
|
|
179
|
+
▮tILDE flips the case
|
|
180
|
+
target: |-
|
|
181
|
+
Tilde flips the case
|
|
182
|
+
solution: 'g~iw'
|
|
183
|
+
hint: 'g~ flips case over a motion or text object.'
|
|
184
|
+
variants:
|
|
185
|
+
- goal: 'Flip the case of the first word.'
|
|
186
|
+
start: |-
|
|
187
|
+
▮eBBINGHAUS and the forgetting curve
|
|
188
|
+
target: |-
|
|
189
|
+
Ebbinghaus and the forgetting curve
|
|
190
|
+
- start: |-
|
|
191
|
+
▮mILLER and the magical number
|
|
192
|
+
target: |-
|
|
193
|
+
Miller and the magical number
|
|
194
|
+
- start: |-
|
|
195
|
+
▮cOWAN and the number four
|
|
196
|
+
target: |-
|
|
197
|
+
Cowan and the number four
|
|
198
|
+
- start: |-
|
|
199
|
+
▮wAVE: the tilde flips
|
|
200
|
+
target: |-
|
|
201
|
+
Wave: the tilde flips
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
week: 2
|
|
2
|
+
day: 5
|
|
3
|
+
title: Getting into insert mode well
|
|
4
|
+
intro: |
|
|
5
|
+
Choosing the right way into insert mode saves moving first: `o`/`O` *open*
|
|
6
|
+
a line below/above, `ea` goes to the *end* of a word and *appends*, `R`
|
|
7
|
+
keeps *replacing* (you type over text), `r` replaces one character without
|
|
8
|
+
entering insert mode, and a count repeats what you type (`5i=<Esc>`). While
|
|
9
|
+
typing, `Ctrl-w` wipes the last word and `Ctrl-u` undoes the whole line, so
|
|
10
|
+
you rarely need Backspace.
|
|
11
|
+
keys: [o, O, ea, R, r, 5i, "<C-w>", "<C-u>"]
|
|
12
|
+
tasks:
|
|
13
|
+
- goal: 'Add the line "below" between them.'
|
|
14
|
+
start: |-
|
|
15
|
+
▮o opens a line
|
|
16
|
+
O opens one above
|
|
17
|
+
target: |-
|
|
18
|
+
o opens a line
|
|
19
|
+
below
|
|
20
|
+
O opens one above
|
|
21
|
+
solution: 'obelow<Esc>'
|
|
22
|
+
hint: 'o opens a new line below and starts insert mode.'
|
|
23
|
+
variants:
|
|
24
|
+
- goal: 'Add the missing stage between them.'
|
|
25
|
+
start: |-
|
|
26
|
+
▮encoding
|
|
27
|
+
retrieval
|
|
28
|
+
target: |-
|
|
29
|
+
encoding
|
|
30
|
+
storage
|
|
31
|
+
retrieval
|
|
32
|
+
solution: 'ostorage<Esc>'
|
|
33
|
+
- goal: 'Add the missing stage of skill between them.'
|
|
34
|
+
start: |-
|
|
35
|
+
▮cognitive
|
|
36
|
+
autonomous
|
|
37
|
+
target: |-
|
|
38
|
+
cognitive
|
|
39
|
+
associative
|
|
40
|
+
autonomous
|
|
41
|
+
solution: 'oassociative<Esc>'
|
|
42
|
+
- goal: 'Add "day 3" between them.'
|
|
43
|
+
start: |-
|
|
44
|
+
▮day 1
|
|
45
|
+
day 7
|
|
46
|
+
target: |-
|
|
47
|
+
day 1
|
|
48
|
+
day 3
|
|
49
|
+
day 7
|
|
50
|
+
solution: 'oday 3<Esc>'
|
|
51
|
+
- goal: 'Add "2001 Cowan" between them.'
|
|
52
|
+
start: |-
|
|
53
|
+
▮1956 Miller
|
|
54
|
+
2006 Roediger
|
|
55
|
+
target: |-
|
|
56
|
+
1956 Miller
|
|
57
|
+
2001 Cowan
|
|
58
|
+
2006 Roediger
|
|
59
|
+
solution: 'o2001 Cowan<Esc>'
|
|
60
|
+
- goal: 'Add the line "O opened this one above" above.'
|
|
61
|
+
start: |-
|
|
62
|
+
▮this line
|
|
63
|
+
target: |-
|
|
64
|
+
O opened this one above
|
|
65
|
+
this line
|
|
66
|
+
solution: 'OO opened this one above<Esc>'
|
|
67
|
+
hint: 'Capital O opens a line above.'
|
|
68
|
+
variants:
|
|
69
|
+
- goal: 'Add an Introduction line above.'
|
|
70
|
+
start: |-
|
|
71
|
+
▮Method
|
|
72
|
+
target: |-
|
|
73
|
+
Introduction
|
|
74
|
+
Method
|
|
75
|
+
solution: 'OIntroduction<Esc>'
|
|
76
|
+
- goal: 'Add a Method line above.'
|
|
77
|
+
start: |-
|
|
78
|
+
▮Results
|
|
79
|
+
target: |-
|
|
80
|
+
Method
|
|
81
|
+
Results
|
|
82
|
+
solution: 'OMethod<Esc>'
|
|
83
|
+
- goal: 'Add the line "O opens above" above.'
|
|
84
|
+
start: |-
|
|
85
|
+
▮below
|
|
86
|
+
target: |-
|
|
87
|
+
O opens above
|
|
88
|
+
below
|
|
89
|
+
solution: 'OO opens above<Esc>'
|
|
90
|
+
- goal: 'Add "encoding" above.'
|
|
91
|
+
start: |-
|
|
92
|
+
▮storage
|
|
93
|
+
retrieval
|
|
94
|
+
target: |-
|
|
95
|
+
encoding
|
|
96
|
+
storage
|
|
97
|
+
retrieval
|
|
98
|
+
solution: 'Oencoding<Esc>'
|
|
99
|
+
- goal: 'Fix "append" to "appends".'
|
|
100
|
+
start: |-
|
|
101
|
+
e goes to the end, and a ▮append after it.
|
|
102
|
+
target: |-
|
|
103
|
+
e goes to the end, and a appends after it.
|
|
104
|
+
solution: 'eas<Esc>'
|
|
105
|
+
hint: 'e goes to the end of the word, a appends after it.'
|
|
106
|
+
variants:
|
|
107
|
+
- goal: 'Make "allophone" plural.'
|
|
108
|
+
start: |-
|
|
109
|
+
Three ▮allophone appear.
|
|
110
|
+
target: |-
|
|
111
|
+
Three allophones appear.
|
|
112
|
+
- goal: 'Make "syllable" plural.'
|
|
113
|
+
start: |-
|
|
114
|
+
Ebbinghaus learned nonsense ▮syllable by heart.
|
|
115
|
+
target: |-
|
|
116
|
+
Ebbinghaus learned nonsense syllables by heart.
|
|
117
|
+
- goal: 'Fix "append" to "appends".'
|
|
118
|
+
start: |-
|
|
119
|
+
e moves, then a ▮append after the word.
|
|
120
|
+
target: |-
|
|
121
|
+
e moves, then a appends after the word.
|
|
122
|
+
- goal: 'Make "topic" plural.'
|
|
123
|
+
start: |-
|
|
124
|
+
Interleaving mixes ▮topic within a session.
|
|
125
|
+
target: |-
|
|
126
|
+
Interleaving mixes topics within a session.
|
|
127
|
+
- goal: 'Underline the title with five = signs.'
|
|
128
|
+
start: |-
|
|
129
|
+
Recall
|
|
130
|
+
▮
|
|
131
|
+
target: |-
|
|
132
|
+
Recall
|
|
133
|
+
=====
|
|
134
|
+
solution: '5i=<Esc>'
|
|
135
|
+
hint: 'A count before i repeats the inserted text.'
|
|
136
|
+
variants:
|
|
137
|
+
- goal: 'Underline the title with five = signs.'
|
|
138
|
+
start: |-
|
|
139
|
+
Tones
|
|
140
|
+
▮
|
|
141
|
+
target: |-
|
|
142
|
+
Tones
|
|
143
|
+
=====
|
|
144
|
+
- goal: 'Underline the title with five - signs.'
|
|
145
|
+
start: |-
|
|
146
|
+
Sleep
|
|
147
|
+
▮
|
|
148
|
+
target: |-
|
|
149
|
+
Sleep
|
|
150
|
+
-----
|
|
151
|
+
solution: '5i-<Esc>'
|
|
152
|
+
- start: |-
|
|
153
|
+
Chunks
|
|
154
|
+
▮
|
|
155
|
+
target: |-
|
|
156
|
+
Chunks
|
|
157
|
+
=====
|
|
158
|
+
- goal: 'Underline the title with five ~ signs.'
|
|
159
|
+
start: |-
|
|
160
|
+
Tests
|
|
161
|
+
▮
|
|
162
|
+
target: |-
|
|
163
|
+
Tests
|
|
164
|
+
~~~~~
|
|
165
|
+
solution: '5i~<Esc>'
|
|
166
|
+
- goal: 'Type the date 2026-10-26 over the zeros.'
|
|
167
|
+
start: |-
|
|
168
|
+
Next review: ▮0000-00-00
|
|
169
|
+
target: |-
|
|
170
|
+
Next review: 2026-10-26
|
|
171
|
+
solution: 'R2026-10-26<Esc>'
|
|
172
|
+
hint: 'R keeps replacing: it types over the existing characters.'
|
|
173
|
+
variants:
|
|
174
|
+
- goal: 'Overwrite the date with 2026-10-24.'
|
|
175
|
+
start: |-
|
|
176
|
+
Recorded: ▮2024-03-15
|
|
177
|
+
target: |-
|
|
178
|
+
Recorded: 2026-10-24
|
|
179
|
+
solution: 'R2026-10-24<Esc>'
|
|
180
|
+
- goal: 'Type 1885 over the zeros.'
|
|
181
|
+
start: |-
|
|
182
|
+
Ebbinghaus, ▮0000
|
|
183
|
+
target: |-
|
|
184
|
+
Ebbinghaus, 1885
|
|
185
|
+
solution: 'R1885<Esc>'
|
|
186
|
+
- goal: 'Type the date 2026-11-02 over the placeholder.'
|
|
187
|
+
start: |-
|
|
188
|
+
Next review: ▮YYYY-MM-DD
|
|
189
|
+
target: |-
|
|
190
|
+
Next review: 2026-11-02
|
|
191
|
+
solution: 'R2026-11-02<Esc>'
|
|
192
|
+
- goal: 'Overwrite the year with 1956.'
|
|
193
|
+
start: |-
|
|
194
|
+
Miller, ▮1965
|
|
195
|
+
target: |-
|
|
196
|
+
Miller, 1956
|
|
197
|
+
solution: 'R1956<Esc>'
|
|
198
|
+
- goal: 'Fix "keplaces" to "replaces".'
|
|
199
|
+
start: |-
|
|
200
|
+
r ▮keplaces one letter
|
|
201
|
+
target: |-
|
|
202
|
+
r replaces one letter
|
|
203
|
+
solution: 'rr'
|
|
204
|
+
hint: 'r replaces one character and stays in normal mode. Here that''s r, then r.'
|
|
205
|
+
variants:
|
|
206
|
+
- goal: 'Fix the operator: minus should be plus.'
|
|
207
|
+
start: |-
|
|
208
|
+
x = a ▮- b
|
|
209
|
+
target: |-
|
|
210
|
+
x = a + b
|
|
211
|
+
solution: 'r+'
|
|
212
|
+
- goal: 'Fitts and Posner named three stages: fix the number.'
|
|
213
|
+
start: |-
|
|
214
|
+
Fitts and Posner named ▮2 stages
|
|
215
|
+
target: |-
|
|
216
|
+
Fitts and Posner named 3 stages
|
|
217
|
+
solution: 'r3'
|
|
218
|
+
- goal: 'Fix "mot" to "dot".'
|
|
219
|
+
start: |-
|
|
220
|
+
The ▮mot command repeats
|
|
221
|
+
target: |-
|
|
222
|
+
The dot command repeats
|
|
223
|
+
solution: 'rd'
|
|
224
|
+
- goal: 'Cowan said about four: fix the number.'
|
|
225
|
+
start: |-
|
|
226
|
+
Cowan: about ▮5 chunks
|
|
227
|
+
target: |-
|
|
228
|
+
Cowan: about 4 chunks
|
|
229
|
+
solution: 'r4'
|