{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.15","languages":{"javascript":{"id":"intermediate.15","title":"Make replay robust","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Bound replay and establish a reliable starting position on unequal lines.</p><p><strong>Before this lesson:</strong> Record, stop and replay.</p><p>A reliable macro establishes its boundary, makes the edit and prepares the next item. I and A handle unequal line lengths better than fixed horizontal movement. A count before @a runs that many replays; count only the remaining work. Preserve the protected footer and stop before it.</p><h3>Example</h3><p>If recording handled one of four items, 3@a handles the remaining three. An extra replay can edit the footer. Undo and refine the route when the next item has a different shape.</p><p>Use Reset to try again.</p>","teaches":["macro:replay"],"introduces":["q","@","I","A","j","0","count"],"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","2","@","a"],"tier":"idiomatic","technique":"macro:replay","core":["macro:replay"],"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.15#0","canonicalFingerprint":"1a8y8pk"}]},"python":{"id":"intermediate.15","title":"Make replay robust","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Bound replay and establish a reliable starting position on unequal lines.</p><p><strong>Before this lesson:</strong> Record, stop and replay.</p><p>A reliable macro establishes its boundary, makes the edit and prepares the next item. I and A handle unequal line lengths better than fixed horizontal movement. A count before @a runs that many replays; count only the remaining work. Preserve the protected footer and stop before it.</p><h3>Example</h3><p>If recording handled one of four items, 3@a handles the remaining three. An extra replay can edit the footer. Undo and refine the route when the next item has a different shape.</p><p>Use Reset to try again.</p>","teaches":["macro:replay"],"introduces":["q","@","I","A","j","0","count"],"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","2","@","a"],"tier":"idiomatic","technique":"macro:replay","core":["macro:replay"],"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.15#0","canonicalFingerprint":"1a8y8pk"}]},"text":{"id":"intermediate.15","title":"Make replay robust","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Bound replay and establish a reliable starting position on unequal lines.</p><p><strong>Before this lesson:</strong> Record, stop and replay.</p><p>A reliable macro establishes its boundary, makes the edit and prepares the next item. I and A handle unequal line lengths better than fixed horizontal movement. A count before @a runs that many replays; count only the remaining work. Preserve the protected footer and stop before it.</p><h3>Example</h3><p>If recording handled one of four items, 3@a handles the remaining three. An extra replay can edit the footer. Undo and refine the route when the next item has a different shape.</p><p>Use Reset to try again.</p>","teaches":["macro:replay"],"introduces":["q","@","I","A","j","0","count"],"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","2","@","a"],"tier":"idiomatic","technique":"macro:replay","core":["macro:replay"],"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.15#0","canonicalFingerprint":"1a8y8pk"}]}}}