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,170 @@
|
|
|
1
|
+
week: 3
|
|
2
|
+
day: 2
|
|
3
|
+
title: Smarter macros
|
|
4
|
+
intro: |
|
|
5
|
+
A macro can search (`/TODO<Enter>` inside it finds the next one), use
|
|
6
|
+
`Ctrl-a`, and run on a range with `:2,$norm @a` (*norm* for normal mode:
|
|
7
|
+
it types the keys on each line). `@@` plays again at the same place: the
|
|
8
|
+
last macro you played.
|
|
9
|
+
keys: ['/ in a macro', '@@', ':norm @a', 'yyp<C-a>']
|
|
10
|
+
tasks:
|
|
11
|
+
- goal: 'Uppercase the word after every TODO.'
|
|
12
|
+
start: |-
|
|
13
|
+
▮1 TODO review this
|
|
14
|
+
2 nothing here
|
|
15
|
+
3 TODO test that
|
|
16
|
+
4 TODO space it
|
|
17
|
+
target: |-
|
|
18
|
+
1 TODO REVIEW this
|
|
19
|
+
2 nothing here
|
|
20
|
+
3 TODO TEST that
|
|
21
|
+
4 TODO SPACE it
|
|
22
|
+
solution: 'qa/TODO<CR>wgUiwq2@a'
|
|
23
|
+
hint: 'Let the macro find its own place: /TODO<Enter> w gUiw.'
|
|
24
|
+
variants:
|
|
25
|
+
- goal: 'Uppercase the word after every TODO.'
|
|
26
|
+
start: |-
|
|
27
|
+
▮a TODO check this
|
|
28
|
+
b fine
|
|
29
|
+
c TODO gloss that
|
|
30
|
+
d TODO tag it
|
|
31
|
+
target: |-
|
|
32
|
+
a TODO CHECK this
|
|
33
|
+
b fine
|
|
34
|
+
c TODO GLOSS that
|
|
35
|
+
d TODO TAG it
|
|
36
|
+
- start: |-
|
|
37
|
+
▮1 TODO space this
|
|
38
|
+
2 done
|
|
39
|
+
3 TODO test that
|
|
40
|
+
4 TODO sleep now
|
|
41
|
+
target: |-
|
|
42
|
+
1 TODO SPACE this
|
|
43
|
+
2 done
|
|
44
|
+
3 TODO TEST that
|
|
45
|
+
4 TODO SLEEP now
|
|
46
|
+
- start: |-
|
|
47
|
+
▮x TODO macro it
|
|
48
|
+
y skip
|
|
49
|
+
z TODO record this
|
|
50
|
+
w TODO play that
|
|
51
|
+
target: |-
|
|
52
|
+
x TODO MACRO it
|
|
53
|
+
y skip
|
|
54
|
+
z TODO RECORD this
|
|
55
|
+
w TODO PLAY that
|
|
56
|
+
- goal: 'Turn every comma into " | ", using @a once and then @@.'
|
|
57
|
+
start: |-
|
|
58
|
+
▮q,record
|
|
59
|
+
@,play
|
|
60
|
+
@@,again
|
|
61
|
+
target: |-
|
|
62
|
+
q | record
|
|
63
|
+
@ | play
|
|
64
|
+
@@ | again
|
|
65
|
+
solution: 'qa0f,xi | <Esc>jq@a@@'
|
|
66
|
+
hint: '0 f, x deletes the comma, i | <Esc> inserts the separator, j moves on. Then @a, then @@.'
|
|
67
|
+
variants:
|
|
68
|
+
- goal: 'Turn every comma into " | ", using @a once and then @@.'
|
|
69
|
+
start: |-
|
|
70
|
+
▮onset,coda
|
|
71
|
+
head,dependent
|
|
72
|
+
topic,comment
|
|
73
|
+
target: |-
|
|
74
|
+
onset | coda
|
|
75
|
+
head | dependent
|
|
76
|
+
topic | comment
|
|
77
|
+
- start: |-
|
|
78
|
+
▮key,hook
|
|
79
|
+
f,find
|
|
80
|
+
t,till
|
|
81
|
+
target: |-
|
|
82
|
+
key | hook
|
|
83
|
+
f | find
|
|
84
|
+
t | till
|
|
85
|
+
- start: |-
|
|
86
|
+
▮Miller,seven
|
|
87
|
+
Cowan,four
|
|
88
|
+
Ebbinghaus,1885
|
|
89
|
+
target: |-
|
|
90
|
+
Miller | seven
|
|
91
|
+
Cowan | four
|
|
92
|
+
Ebbinghaus | 1885
|
|
93
|
+
- goal: 'Put every line in parentheses: record on the first line, then use :norm for the rest.'
|
|
94
|
+
start: |-
|
|
95
|
+
▮spacing
|
|
96
|
+
testing
|
|
97
|
+
sleep
|
|
98
|
+
mnemonics
|
|
99
|
+
target: |-
|
|
100
|
+
(spacing)
|
|
101
|
+
(testing)
|
|
102
|
+
(sleep)
|
|
103
|
+
(mnemonics)
|
|
104
|
+
solution: 'qaI(<Esc>A)<Esc>q:2,$norm @a<CR>'
|
|
105
|
+
hint: 'No j in this macro. :2,$norm @a runs it once on every line from 2 to the end.'
|
|
106
|
+
variants:
|
|
107
|
+
- goal: 'Put every line in parentheses: record on the first line, then use :norm for the rest.'
|
|
108
|
+
start: |-
|
|
109
|
+
▮DP
|
|
110
|
+
TP
|
|
111
|
+
CP
|
|
112
|
+
VP
|
|
113
|
+
target: |-
|
|
114
|
+
(DP)
|
|
115
|
+
(TP)
|
|
116
|
+
(CP)
|
|
117
|
+
(VP)
|
|
118
|
+
- start: |-
|
|
119
|
+
▮encode
|
|
120
|
+
store
|
|
121
|
+
retrieve
|
|
122
|
+
forget
|
|
123
|
+
target: |-
|
|
124
|
+
(encode)
|
|
125
|
+
(store)
|
|
126
|
+
(retrieve)
|
|
127
|
+
(forget)
|
|
128
|
+
- start: |-
|
|
129
|
+
▮q
|
|
130
|
+
@a
|
|
131
|
+
@@
|
|
132
|
+
norm
|
|
133
|
+
target: |-
|
|
134
|
+
(q)
|
|
135
|
+
(@a)
|
|
136
|
+
(@@)
|
|
137
|
+
(norm)
|
|
138
|
+
- goal: 'Make a numbered list of four items.'
|
|
139
|
+
start: |-
|
|
140
|
+
▮1. Test yourself.
|
|
141
|
+
target: |-
|
|
142
|
+
1. Test yourself.
|
|
143
|
+
2. Test yourself.
|
|
144
|
+
3. Test yourself.
|
|
145
|
+
4. Test yourself.
|
|
146
|
+
solution: 'qayyp<C-a>q2@a'
|
|
147
|
+
hint: 'yyp copies the line, Ctrl-a bumps its number. Record that, then 2@a.'
|
|
148
|
+
variants:
|
|
149
|
+
- goal: 'Make a numbered list of four items.'
|
|
150
|
+
start: |-
|
|
151
|
+
▮1. Review after a delay.
|
|
152
|
+
target: |-
|
|
153
|
+
1. Review after a delay.
|
|
154
|
+
2. Review after a delay.
|
|
155
|
+
3. Review after a delay.
|
|
156
|
+
4. Review after a delay.
|
|
157
|
+
- start: |-
|
|
158
|
+
▮1. Space your reviews.
|
|
159
|
+
target: |-
|
|
160
|
+
1. Space your reviews.
|
|
161
|
+
2. Space your reviews.
|
|
162
|
+
3. Space your reviews.
|
|
163
|
+
4. Space your reviews.
|
|
164
|
+
- start: |-
|
|
165
|
+
▮1. Record, then replay.
|
|
166
|
+
target: |-
|
|
167
|
+
1. Record, then replay.
|
|
168
|
+
2. Record, then replay.
|
|
169
|
+
3. Record, then replay.
|
|
170
|
+
4. Record, then replay.
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
week: 3
|
|
2
|
+
day: 3
|
|
3
|
+
title: Registers
|
|
4
|
+
intro: |
|
|
5
|
+
Every yank and delete goes into the unnamed register, so a delete can
|
|
6
|
+
replace what you meant to paste. The quote mark names a register: `"a`
|
|
7
|
+
means *in register a* (`"ayy`, `"ap`). Capital `"A` appends to it. `"0`
|
|
8
|
+
holds the last yank, untouched by deletes. `"_` is the floor: text falls
|
|
9
|
+
through it and is gone, so `"_d` deletes without saving anything. While
|
|
10
|
+
typing, `Ctrl-r a` reads register a in, and `Ctrl-r =` is a calculator.
|
|
11
|
+
keys: ['"ayy', '"ap', '"0p', '"_d', '"Ayy', '<C-r>0', '<C-r>=']
|
|
12
|
+
tasks:
|
|
13
|
+
- goal: 'Copy the first line to the end and delete junk, without losing it.'
|
|
14
|
+
start: |-
|
|
15
|
+
▮named registers
|
|
16
|
+
junk
|
|
17
|
+
survive deletes:
|
|
18
|
+
target: |-
|
|
19
|
+
named registers
|
|
20
|
+
survive deletes:
|
|
21
|
+
named registers
|
|
22
|
+
solution: '"ayyjdd"ap'
|
|
23
|
+
hint: 'yy then dd would paste junk. Yank into a named register: "ayy, then later "ap.'
|
|
24
|
+
variants:
|
|
25
|
+
- goal: 'Copy "competence" to the end and delete junk, without losing "competence".'
|
|
26
|
+
start: |-
|
|
27
|
+
▮competence
|
|
28
|
+
junk
|
|
29
|
+
performance
|
|
30
|
+
target: |-
|
|
31
|
+
competence
|
|
32
|
+
performance
|
|
33
|
+
competence
|
|
34
|
+
- goal: 'Copy the first line to the end and delete junk, without losing it.'
|
|
35
|
+
start: |-
|
|
36
|
+
▮register a
|
|
37
|
+
junk
|
|
38
|
+
keeps what you yank:
|
|
39
|
+
target: |-
|
|
40
|
+
register a
|
|
41
|
+
keeps what you yank:
|
|
42
|
+
register a
|
|
43
|
+
- goal: 'Copy "spacing" to the end and delete junk, without losing "spacing".'
|
|
44
|
+
start: |-
|
|
45
|
+
▮spacing
|
|
46
|
+
junk
|
|
47
|
+
beats cramming, so:
|
|
48
|
+
target: |-
|
|
49
|
+
spacing
|
|
50
|
+
beats cramming, so:
|
|
51
|
+
spacing
|
|
52
|
+
- goal: 'Delete the typo line, then paste the line you yanked at the end.'
|
|
53
|
+
start: |-
|
|
54
|
+
▮0 holds the last yank
|
|
55
|
+
typo
|
|
56
|
+
even after a delete:
|
|
57
|
+
target: |-
|
|
58
|
+
0 holds the last yank
|
|
59
|
+
even after a delete:
|
|
60
|
+
0 holds the last yank
|
|
61
|
+
solution: 'yyjdd"0p'
|
|
62
|
+
hint: 'Register 0 always holds the last yank, even after a delete.'
|
|
63
|
+
variants:
|
|
64
|
+
- goal: 'Delete the typo line, then paste the line you yanked at the end.'
|
|
65
|
+
start: |-
|
|
66
|
+
▮sign
|
|
67
|
+
typo
|
|
68
|
+
referent:
|
|
69
|
+
target: |-
|
|
70
|
+
sign
|
|
71
|
+
referent:
|
|
72
|
+
sign
|
|
73
|
+
- start: |-
|
|
74
|
+
▮the yank register
|
|
75
|
+
typo
|
|
76
|
+
is zero:
|
|
77
|
+
target: |-
|
|
78
|
+
the yank register
|
|
79
|
+
is zero:
|
|
80
|
+
the yank register
|
|
81
|
+
- start: |-
|
|
82
|
+
▮testing
|
|
83
|
+
typo
|
|
84
|
+
beats rereading:
|
|
85
|
+
target: |-
|
|
86
|
+
testing
|
|
87
|
+
beats rereading:
|
|
88
|
+
testing
|
|
89
|
+
- goal: 'Delete the misspelling "black hoel" and replace "blak hole" with "black hole". Keep black hole in the unnamed register.'
|
|
90
|
+
start: |-
|
|
91
|
+
▮black hole
|
|
92
|
+
black hoel
|
|
93
|
+
blak hole
|
|
94
|
+
target: |-
|
|
95
|
+
black hole
|
|
96
|
+
black hole
|
|
97
|
+
solution: 'yyj"_ddVp'
|
|
98
|
+
hint: '"_dd drops the line through the floor, so the unnamed register still holds black hole. Vp pastes over the line.'
|
|
99
|
+
variants:
|
|
100
|
+
- goal: 'Delete the misspelling "sintax" and replace "syntaks" with "syntax". Keep syntax in the unnamed register.'
|
|
101
|
+
start: |-
|
|
102
|
+
▮syntax
|
|
103
|
+
sintax
|
|
104
|
+
syntaks
|
|
105
|
+
target: |-
|
|
106
|
+
syntax
|
|
107
|
+
syntax
|
|
108
|
+
hint: '"_dd deletes into the black hole, so the unnamed register still holds syntax. Vp pastes over the line.'
|
|
109
|
+
- goal: 'Delete the misspelling "regsiter" and replace "registre" with "register". Keep register in the unnamed register.'
|
|
110
|
+
start: |-
|
|
111
|
+
▮register
|
|
112
|
+
regsiter
|
|
113
|
+
registre
|
|
114
|
+
target: |-
|
|
115
|
+
register
|
|
116
|
+
register
|
|
117
|
+
- goal: 'Delete the misspelling "retreival" and replace "retrival" with "retrieval". Keep retrieval in the unnamed register.'
|
|
118
|
+
start: |-
|
|
119
|
+
▮retrieval
|
|
120
|
+
retreival
|
|
121
|
+
retrival
|
|
122
|
+
target: |-
|
|
123
|
+
retrieval
|
|
124
|
+
retrieval
|
|
125
|
+
- goal: 'Add the last word of line 1 to the end of line 2.'
|
|
126
|
+
start: |-
|
|
127
|
+
▮reads in: register
|
|
128
|
+
Ctrl-r inserts a
|
|
129
|
+
target: |-
|
|
130
|
+
reads in: register
|
|
131
|
+
Ctrl-r inserts a register
|
|
132
|
+
solution: '$yiwjA <C-r>0<Esc>'
|
|
133
|
+
hint: 'Yank the word, then in insert mode Ctrl-r 0 reads it in for you.'
|
|
134
|
+
variants:
|
|
135
|
+
- goal: 'Add the name from line 1 to the end of line 2.'
|
|
136
|
+
start: |-
|
|
137
|
+
▮name: Boas
|
|
138
|
+
greeting: hi
|
|
139
|
+
target: |-
|
|
140
|
+
name: Boas
|
|
141
|
+
greeting: hi Boas
|
|
142
|
+
- goal: 'Add the last word of line 1 to the end of line 2.'
|
|
143
|
+
start: |-
|
|
144
|
+
▮last yank: zero
|
|
145
|
+
the yank register is
|
|
146
|
+
target: |-
|
|
147
|
+
last yank: zero
|
|
148
|
+
the yank register is zero
|
|
149
|
+
- goal: 'Add the last word of line 1 to the end of line 2.'
|
|
150
|
+
start: |-
|
|
151
|
+
▮number: four
|
|
152
|
+
Cowan said about
|
|
153
|
+
target: |-
|
|
154
|
+
number: four
|
|
155
|
+
Cowan said about four
|
|
156
|
+
- goal: 'Fill in the product while typing.'
|
|
157
|
+
start: |-
|
|
158
|
+
▮Ctrl-r = is a calculator (6 * 7):
|
|
159
|
+
target: |-
|
|
160
|
+
Ctrl-r = is a calculator (6 * 7): 42
|
|
161
|
+
solution: 'A <C-r>=6*7<CR><Esc>'
|
|
162
|
+
hint: 'In insert mode, Ctrl-r = opens a calculator: type 6*7 and Enter.'
|
|
163
|
+
variants:
|
|
164
|
+
- goal: 'Fill in the difference while typing.'
|
|
165
|
+
start: |-
|
|
166
|
+
▮Ebbinghaus to Roediger, in years (2006 - 1885):
|
|
167
|
+
target: |-
|
|
168
|
+
Ebbinghaus to Roediger, in years (2006 - 1885): 121
|
|
169
|
+
solution: 'A <C-r>=2006-1885<CR><Esc>'
|
|
170
|
+
hint: 'In insert mode, Ctrl-r = opens a calculator: type 2006-1885 and Enter.'
|
|
171
|
+
- goal: 'Fill in the difference while typing.'
|
|
172
|
+
start: |-
|
|
173
|
+
▮Miller to Cowan, in years (2001 - 1956):
|
|
174
|
+
target: |-
|
|
175
|
+
Miller to Cowan, in years (2001 - 1956): 45
|
|
176
|
+
solution: 'A <C-r>=2001-1956<CR><Esc>'
|
|
177
|
+
- goal: 'Fill in the difference while typing.'
|
|
178
|
+
start: |-
|
|
179
|
+
▮Ebbinghaus's age when he published (1885 - 1850):
|
|
180
|
+
target: |-
|
|
181
|
+
Ebbinghaus's age when he published (1885 - 1850): 35
|
|
182
|
+
solution: 'A <C-r>=1885-1850<CR><Esc>'
|
|
183
|
+
- goal: 'Collect the first and last lines in one register and paste both at the end.'
|
|
184
|
+
start: |-
|
|
185
|
+
▮capital A
|
|
186
|
+
skip
|
|
187
|
+
appends
|
|
188
|
+
target: |-
|
|
189
|
+
capital A
|
|
190
|
+
skip
|
|
191
|
+
appends
|
|
192
|
+
capital A
|
|
193
|
+
appends
|
|
194
|
+
solution: '"ayyjj"Ayy"ap'
|
|
195
|
+
hint: 'A capital register name appends: "ayy, then "Ayy on appends, then "ap.'
|
|
196
|
+
variants:
|
|
197
|
+
- goal: 'Collect onset and coda in one register and paste both at the end.'
|
|
198
|
+
start: |-
|
|
199
|
+
▮onset
|
|
200
|
+
skip
|
|
201
|
+
coda
|
|
202
|
+
target: |-
|
|
203
|
+
onset
|
|
204
|
+
skip
|
|
205
|
+
coda
|
|
206
|
+
onset
|
|
207
|
+
coda
|
|
208
|
+
hint: 'A capital register name appends: "ayy, then "Ayy on coda, then "ap.'
|
|
209
|
+
- goal: 'Collect encode and retrieve in one register and paste both at the end.'
|
|
210
|
+
start: |-
|
|
211
|
+
▮encode
|
|
212
|
+
skip
|
|
213
|
+
retrieve
|
|
214
|
+
target: |-
|
|
215
|
+
encode
|
|
216
|
+
skip
|
|
217
|
+
retrieve
|
|
218
|
+
encode
|
|
219
|
+
retrieve
|
|
220
|
+
- goal: 'Collect the first and last lines in one register and paste both at the end.'
|
|
221
|
+
start: |-
|
|
222
|
+
▮yank into a
|
|
223
|
+
skip
|
|
224
|
+
then append to A
|
|
225
|
+
target: |-
|
|
226
|
+
yank into a
|
|
227
|
+
skip
|
|
228
|
+
then append to A
|
|
229
|
+
yank into a
|
|
230
|
+
then append to A
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
week: 3
|
|
2
|
+
day: 4
|
|
3
|
+
title: Marks and jumps
|
|
4
|
+
intro: |
|
|
5
|
+
`m` marks a spot: `ma` sets mark a. The plain quote `'a` goes to its line,
|
|
6
|
+
the backtick `` `a `` to its exact letter, and
|
|
7
|
+
both work as motions: `d'a` deletes the lines from here to the mark,
|
|
8
|
+
`` c`a `` changes from the mark to the cursor. ` `` ` (two backticks)
|
|
9
|
+
jumps back to where you were before the last jump (`G`, `/`, `%` …).
|
|
10
|
+
keys: [ma, "'a", '`a', "d'a", "y'a", '``']
|
|
11
|
+
tasks:
|
|
12
|
+
- goal: 'Delete all the lines between BEGIN and END.'
|
|
13
|
+
start: |-
|
|
14
|
+
▮BEGIN
|
|
15
|
+
rereading
|
|
16
|
+
highlighting
|
|
17
|
+
summarizing
|
|
18
|
+
copying notes
|
|
19
|
+
listening again
|
|
20
|
+
END
|
|
21
|
+
target: |-
|
|
22
|
+
BEGIN
|
|
23
|
+
END
|
|
24
|
+
solution: 'jma/END<CR>kd''a'
|
|
25
|
+
hint: 'Mark the first line to go (ma), find the last one, then d''a. (d/END<Enter> from the first line is a nice shortcut too.)'
|
|
26
|
+
variants:
|
|
27
|
+
- goal: 'Delete all the lines between BEGIN and END.'
|
|
28
|
+
start: |-
|
|
29
|
+
▮BEGIN
|
|
30
|
+
nom: I
|
|
31
|
+
acc: me
|
|
32
|
+
gen: my
|
|
33
|
+
dat: to me
|
|
34
|
+
abl: from me
|
|
35
|
+
END
|
|
36
|
+
target: |-
|
|
37
|
+
BEGIN
|
|
38
|
+
END
|
|
39
|
+
- start: |-
|
|
40
|
+
▮BEGIN
|
|
41
|
+
cram
|
|
42
|
+
reread
|
|
43
|
+
highlight
|
|
44
|
+
summarize
|
|
45
|
+
skim
|
|
46
|
+
END
|
|
47
|
+
target: |-
|
|
48
|
+
BEGIN
|
|
49
|
+
END
|
|
50
|
+
- start: |-
|
|
51
|
+
▮BEGIN
|
|
52
|
+
mark
|
|
53
|
+
jump
|
|
54
|
+
line
|
|
55
|
+
letter
|
|
56
|
+
back
|
|
57
|
+
END
|
|
58
|
+
target: |-
|
|
59
|
+
BEGIN
|
|
60
|
+
END
|
|
61
|
+
- goal: 'Copy the two mark lines under "Cheat sheet".'
|
|
62
|
+
start: |-
|
|
63
|
+
▮== Marks ==
|
|
64
|
+
m marks a spot
|
|
65
|
+
' jumps to its line
|
|
66
|
+
== Cheat sheet ==
|
|
67
|
+
target: |-
|
|
68
|
+
== Marks ==
|
|
69
|
+
m marks a spot
|
|
70
|
+
' jumps to its line
|
|
71
|
+
== Cheat sheet ==
|
|
72
|
+
m marks a spot
|
|
73
|
+
' jumps to its line
|
|
74
|
+
solution: 'jmajy''aGp'
|
|
75
|
+
hint: 'ma on the first line, j to the second, y''a yanks back to the mark, G p pastes at the end.'
|
|
76
|
+
variants:
|
|
77
|
+
- goal: 'Copy rendezvous and déjà vu under "Used in English".'
|
|
78
|
+
start: |-
|
|
79
|
+
▮== French ==
|
|
80
|
+
rendezvous
|
|
81
|
+
déjà vu
|
|
82
|
+
== Used in English ==
|
|
83
|
+
target: |-
|
|
84
|
+
== French ==
|
|
85
|
+
rendezvous
|
|
86
|
+
déjà vu
|
|
87
|
+
== Used in English ==
|
|
88
|
+
rendezvous
|
|
89
|
+
déjà vu
|
|
90
|
+
hint: 'ma on rendezvous, j to déjà vu, y''a yanks back to the mark, G p pastes at the end.'
|
|
91
|
+
- goal: 'Copy day 1 and day 7 under "Plan".'
|
|
92
|
+
start: |-
|
|
93
|
+
▮== Spacing ==
|
|
94
|
+
day 1
|
|
95
|
+
day 7
|
|
96
|
+
== Plan ==
|
|
97
|
+
target: |-
|
|
98
|
+
== Spacing ==
|
|
99
|
+
day 1
|
|
100
|
+
day 7
|
|
101
|
+
== Plan ==
|
|
102
|
+
day 1
|
|
103
|
+
day 7
|
|
104
|
+
- goal: 'Copy the two jump lines under "Notes".'
|
|
105
|
+
start: |-
|
|
106
|
+
▮== Jumps ==
|
|
107
|
+
'a goes to the line
|
|
108
|
+
`a goes to the letter
|
|
109
|
+
== Notes ==
|
|
110
|
+
target: |-
|
|
111
|
+
== Jumps ==
|
|
112
|
+
'a goes to the line
|
|
113
|
+
`a goes to the letter
|
|
114
|
+
== Notes ==
|
|
115
|
+
'a goes to the line
|
|
116
|
+
`a goes to the letter
|
|
117
|
+
- goal: 'Change "rough, line-wise " to "humble ", using a mark.'
|
|
118
|
+
start: |-
|
|
119
|
+
The ▮rough, line-wise backtick lands on the exact letter
|
|
120
|
+
target: |-
|
|
121
|
+
The humble backtick lands on the exact letter
|
|
122
|
+
solution: 'mafbc`ahumble <Esc>'
|
|
123
|
+
hint: 'ma, go to the b of backtick, then c`a changes from the mark up to the cursor.'
|
|
124
|
+
variants:
|
|
125
|
+
- goal: 'Change "most frequent " to "commonest ", using a mark.'
|
|
126
|
+
start: |-
|
|
127
|
+
The ▮most frequent English word is the
|
|
128
|
+
target: |-
|
|
129
|
+
The commonest English word is the
|
|
130
|
+
solution: 'mafEc`acommonest <Esc>'
|
|
131
|
+
hint: 'ma, go to the E of English, then c`a changes from the mark up to the cursor.'
|
|
132
|
+
- goal: 'Change "quick, letter-exact " to "precise ", using a mark.'
|
|
133
|
+
start: |-
|
|
134
|
+
A ▮quick, letter-exact jump uses the backtick
|
|
135
|
+
target: |-
|
|
136
|
+
A precise jump uses the backtick
|
|
137
|
+
solution: 'mafjc`aprecise <Esc>'
|
|
138
|
+
- goal: 'Change "rarely, if ever, " to "never ", using a mark.'
|
|
139
|
+
start: |-
|
|
140
|
+
Ebbinghaus ▮rarely, if ever, used real words
|
|
141
|
+
target: |-
|
|
142
|
+
Ebbinghaus never used real words
|
|
143
|
+
solution: 'mafuc`anever <Esc>'
|
|
144
|
+
- goal: 'Fix the typo on the last line, then jump back and fix the first.'
|
|
145
|
+
start: |-
|
|
146
|
+
▮teh start
|
|
147
|
+
`` jumps between
|
|
148
|
+
the last two spots
|
|
149
|
+
teh end
|
|
150
|
+
target: |-
|
|
151
|
+
the start
|
|
152
|
+
`` jumps between
|
|
153
|
+
the last two spots
|
|
154
|
+
the end
|
|
155
|
+
solution: 'Gcwthe<Esc>``.'
|
|
156
|
+
hint: 'G is a jump, so `` takes you back. Then . repeats the change.'
|
|
157
|
+
variants:
|
|
158
|
+
- goal: 'Fix the typo on the last line, then jump back and fix the first.'
|
|
159
|
+
start: |-
|
|
160
|
+
▮teh noun
|
|
161
|
+
middle
|
|
162
|
+
middle
|
|
163
|
+
teh verb
|
|
164
|
+
target: |-
|
|
165
|
+
the noun
|
|
166
|
+
middle
|
|
167
|
+
middle
|
|
168
|
+
the verb
|
|
169
|
+
- start: |-
|
|
170
|
+
▮teh mark
|
|
171
|
+
jump
|
|
172
|
+
back
|
|
173
|
+
teh spot
|
|
174
|
+
target: |-
|
|
175
|
+
the mark
|
|
176
|
+
jump
|
|
177
|
+
back
|
|
178
|
+
the spot
|
|
179
|
+
- start: |-
|
|
180
|
+
▮teh test
|
|
181
|
+
wait
|
|
182
|
+
wait
|
|
183
|
+
teh retest
|
|
184
|
+
target: |-
|
|
185
|
+
the test
|
|
186
|
+
wait
|
|
187
|
+
wait
|
|
188
|
+
the retest
|