{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.14","languages":{"javascript":{"id":"intermediate.14","title":"Record, stop and replay","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Record once, account for the edit made while recording, then replay.</p><p><strong>Before this lesson:</strong> Insertion; positioning; repetition.</p><p>qa starts recording into register a; q in Normal mode stops it. @a replays that macro; @@ repeats the last macro used. Recording already performs the first edit. Include positioning for the next line and check one replay before doing many.</p><h3>Example</h3><p>A macro that appends a review marker, leaves Insert mode and moves down can process several notes. The first note was changed during recording; only the remaining notes need replay.</p><p>Use Reset to try again.</p>","teaches":["macro:again"],"introduces":["q","@","A","I","j","0"],"constraints":[],"drills":[{"task":"Apply the shown suffix to the 3 current notes. Keep the archive untouched.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// First\n// A longer second note\n// Third note\n// Keep the archive unchanged.","startCursor":{"line":0,"ch":0},"paths":[{"keys":["q","a","A"," [reviewed]","<Esc>","j","0","q","@","a","@","@"],"tier":"idiomatic","technique":"macro:again","core":["macro:again"],"note":"Recording already edits one item. Position the cursor for the next item and count only the remaining replays."}],"target":"// First [reviewed]\n// A longer second note [reviewed]\n// Third note [reviewed]\n// Keep the archive unchanged.","language":"javascript","evidence":"guided","canonicalKey":"intermediate.14#0","canonicalFingerprint":"1a8y8pk"}]},"python":{"id":"intermediate.14","title":"Record, stop and replay","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Record once, account for the edit made while recording, then replay.</p><p><strong>Before this lesson:</strong> Insertion; positioning; repetition.</p><p>qa starts recording into register a; q in Normal mode stops it. @a replays that macro; @@ repeats the last macro used. Recording already performs the first edit. Include positioning for the next line and check one replay before doing many.</p><h3>Example</h3><p>A macro that appends a review marker, leaves Insert mode and moves down can process several notes. The first note was changed during recording; only the remaining notes need replay.</p><p>Use Reset to try again.</p>","teaches":["macro:again"],"introduces":["q","@","A","I","j","0"],"constraints":[],"drills":[{"task":"Apply the shown suffix to the 3 current notes. Keep the archive untouched.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# First\n# A longer second note\n# Third note\n# Keep the archive unchanged.","startCursor":{"line":0,"ch":0},"paths":[{"keys":["q","a","A"," [reviewed]","<Esc>","j","0","q","@","a","@","@"],"tier":"idiomatic","technique":"macro:again","core":["macro:again"],"note":"Recording already edits one item. Position the cursor for the next item and count only the remaining replays."}],"target":"# First [reviewed]\n# A longer second note [reviewed]\n# Third note [reviewed]\n# Keep the archive unchanged.","language":"python","evidence":"guided","canonicalKey":"intermediate.14#0","canonicalFingerprint":"1a8y8pk"}]},"text":{"id":"intermediate.14","title":"Record, stop and replay","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Record once, account for the edit made while recording, then replay.</p><p><strong>Before this lesson:</strong> Insertion; positioning; repetition.</p><p>qa starts recording into register a; q in Normal mode stops it. @a replays that macro; @@ repeats the last macro used. Recording already performs the first edit. Include positioning for the next line and check one replay before doing many.</p><h3>Example</h3><p>A macro that appends a review marker, leaves Insert mode and moves down can process several notes. The first note was changed during recording; only the remaining notes need replay.</p><p>Use Reset to try again.</p>","teaches":["macro:again"],"introduces":["q","@","A","I","j","0"],"constraints":[],"drills":[{"task":"Apply the shown suffix to the 3 current notes. Keep the archive untouched.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"First\nA longer second note\nThird note\nKeep the archive unchanged.","startCursor":{"line":0,"ch":0},"paths":[{"keys":["q","a","A"," [reviewed]","<Esc>","j","0","q","@","a","@","@"],"tier":"idiomatic","technique":"macro:again","core":["macro:again"],"note":"Recording already edits one item. Position the cursor for the next item and count only the remaining replays."}],"target":"First [reviewed]\nA longer second note [reviewed]\nThird note [reviewed]\nKeep the archive unchanged.","language":"text","evidence":"guided","canonicalKey":"intermediate.14#0","canonicalFingerprint":"1a8y8pk"}]}}}