{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.13","languages":{"javascript":{"id":"intermediate.13","title":"Edit a rectangle","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Apply a column edit and understand when Escape commits it.</p><p><strong>Before this lesson:</strong> Visual selection; insertion.</p><p>Ctrl-v selects a rectangle. I inserts a prefix across its selected lines after Esc; A appends to its right edge. Within a block, $ then A handles each selected line’s actual end. Unequal lengths matter. If the browser intercepts Ctrl-v, use Keyboard check; do not assume native and browser shortcuts are identical.</p><h3>Example</h3><p>Select the first column of three notes with Ctrl-v then 2j. I, type a bullet and a space, then Esc adds the prefix to all selected lines.</p><p>Use Reset to try again.</p>","teaches":["visual:<C-v>"],"introduces":["<C-v>","I","A","$","count"],"constraints":[],"drills":[{"task":"Prefix all three notes with the shown marker.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// first note\n// a longer note\n// last note","startCursor":{"line":0,"ch":0},"paths":[{"keys":["<C-v>","2","j","I","// ","<Esc>"],"tier":"idiomatic","technique":"visual:<C-v>","core":["visual:<C-v>"],"note":"A rectangular change settles on Escape. An end-of-line block handles different lengths rather than a fixed right column."}],"target":"// // first note\n// // a longer note\n// // last note","language":"javascript","evidence":"guided","canonicalKey":"intermediate.13#0","canonicalFingerprint":"v2lo11"}]},"python":{"id":"intermediate.13","title":"Edit a rectangle","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Apply a column edit and understand when Escape commits it.</p><p><strong>Before this lesson:</strong> Visual selection; insertion.</p><p>Ctrl-v selects a rectangle. I inserts a prefix across its selected lines after Esc; A appends to its right edge. Within a block, $ then A handles each selected line’s actual end. Unequal lengths matter. If the browser intercepts Ctrl-v, use Keyboard check; do not assume native and browser shortcuts are identical.</p><h3>Example</h3><p>Select the first column of three notes with Ctrl-v then 2j. I, type a bullet and a space, then Esc adds the prefix to all selected lines.</p><p>Use Reset to try again.</p>","teaches":["visual:<C-v>"],"introduces":["<C-v>","I","A","$","count"],"constraints":[],"drills":[{"task":"Prefix all three notes with the shown marker.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# first note\n# a longer note\n# last note","startCursor":{"line":0,"ch":0},"paths":[{"keys":["<C-v>","2","j","I","# ","<Esc>"],"tier":"idiomatic","technique":"visual:<C-v>","core":["visual:<C-v>"],"note":"A rectangular change settles on Escape. An end-of-line block handles different lengths rather than a fixed right column."}],"target":"# # first note\n# # a longer note\n# # last note","language":"python","evidence":"guided","canonicalKey":"intermediate.13#0","canonicalFingerprint":"v2lo11"}]},"text":{"id":"intermediate.13","title":"Edit a rectangle","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Apply a column edit and understand when Escape commits it.</p><p><strong>Before this lesson:</strong> Visual selection; insertion.</p><p>Ctrl-v selects a rectangle. I inserts a prefix across its selected lines after Esc; A appends to its right edge. Within a block, $ then A handles each selected line’s actual end. Unequal lengths matter. If the browser intercepts Ctrl-v, use Keyboard check; do not assume native and browser shortcuts are identical.</p><h3>Example</h3><p>Select the first column of three notes with Ctrl-v then 2j. I, type a bullet and a space, then Esc adds the prefix to all selected lines.</p><p>Use Reset to try again.</p>","teaches":["visual:<C-v>"],"introduces":["<C-v>","I","A","$","count"],"constraints":[],"drills":[{"task":"Prefix all three notes with the shown marker.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"first note\na longer note\nlast note","startCursor":{"line":0,"ch":0},"paths":[{"keys":["<C-v>","2","j","I","- ","<Esc>"],"tier":"idiomatic","technique":"visual:<C-v>","core":["visual:<C-v>"],"note":"A rectangular change settles on Escape. An end-of-line block handles different lengths rather than a fixed right column."}],"target":"- first note\n- a longer note\n- last note","language":"text","evidence":"guided","canonicalKey":"intermediate.13#0","canonicalFingerprint":"v2lo11"}]}}}