{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.12","languages":{"javascript":{"id":"intermediate.12","title":"Select when a shape needs inspection","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Use v and V positively, adjust a region and choose what to do with it.</p><p><strong>Before this lesson:</strong> Operators and movement.</p><p>v starts characterwise selection; V starts whole-line selection. Move to adjust the highlighted region, then d deletes, y copies or c changes it. Esc cancels selection. Adjust the selection before committing it. Native Vim also offers gv to reselect; this browser exercise does not rely on that command. A text object can be clearer for a known boundary, but visible selection is useful for irregular regions.</p><h3>Example</h3><p>From the start of a short phrase, v then e highlights one word. Extend with another e if two words belong to the edit. V then j selects two entire lines.</p><p>Use Reset to try again.</p>","teaches":["visual:v","visual:V"],"introduces":["v","V","gv","d","y","c","e","j","k"],"constraints":[],"drills":[{"task":"Select and remove exactly the unwanted phrase shown in the target; preserve its surrounding punctuation and spacing.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"const message = \"Remove old note\";\n// Keep the archive unchanged.","startCursor":{"line":0,"ch":17},"paths":[{"keys":["v","6","l","d"],"tier":"idiomatic","technique":"visual:v","core":["visual:v"],"note":"Characterwise selection includes its final highlighted character. Adjust the boundary before deleting."}],"target":"const message = \"old note\";\n// Keep the archive unchanged.","language":"javascript","evidence":"guided","canonicalKey":"intermediate.12#0","canonicalFingerprint":"1wywazn"},{"task":"Remove the unwanted whole lines. Keep the heading and archive; the starting column should not matter.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// Keep heading\n// Remove draft note\n// Keep archive","startCursor":{"line":1,"ch":0},"paths":[{"keys":["V","d"],"tier":"idiomatic","technique":"visual:V","core":["visual:V"],"note":"V selects whole lines, including their line endings."}],"target":"// Keep heading\n// Keep archive","language":"javascript","evidence":"guided","canonicalKey":"intermediate.12#1","canonicalFingerprint":"1jwrmt8"}]},"python":{"id":"intermediate.12","title":"Select when a shape needs inspection","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Use v and V positively, adjust a region and choose what to do with it.</p><p><strong>Before this lesson:</strong> Operators and movement.</p><p>v starts characterwise selection; V starts whole-line selection. Move to adjust the highlighted region, then d deletes, y copies or c changes it. Esc cancels selection. Adjust the selection before committing it. Native Vim also offers gv to reselect; this browser exercise does not rely on that command. A text object can be clearer for a known boundary, but visible selection is useful for irregular regions.</p><h3>Example</h3><p>From the start of a short phrase, v then e highlights one word. Extend with another e if two words belong to the edit. V then j selects two entire lines.</p><p>Use Reset to try again.</p>","teaches":["visual:v","visual:V"],"introduces":["v","V","gv","d","y","c","e","j","k"],"constraints":[],"drills":[{"task":"Select and remove exactly the unwanted phrase shown in the target; preserve its surrounding punctuation and spacing.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"message = \"Remove old note\"\n# Keep the archive unchanged.","startCursor":{"line":0,"ch":11},"paths":[{"keys":["v","6","l","d"],"tier":"idiomatic","technique":"visual:v","core":["visual:v"],"note":"Characterwise selection includes its final highlighted character. Adjust the boundary before deleting."}],"target":"message = \"old note\"\n# Keep the archive unchanged.","language":"python","evidence":"guided","canonicalKey":"intermediate.12#0","canonicalFingerprint":"1wywazn"},{"task":"Remove the unwanted whole lines. Keep the heading and archive; the starting column should not matter.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# Keep heading\n# Remove draft note\n# Keep archive","startCursor":{"line":1,"ch":0},"paths":[{"keys":["V","d"],"tier":"idiomatic","technique":"visual:V","core":["visual:V"],"note":"V selects whole lines, including their line endings."}],"target":"# Keep heading\n# Keep archive","language":"python","evidence":"guided","canonicalKey":"intermediate.12#1","canonicalFingerprint":"1jwrmt8"}]},"text":{"id":"intermediate.12","title":"Select when a shape needs inspection","moduleName":"Repeat, select and compose","tips":"","concept":"<p class=\"lead\">Use v and V positively, adjust a region and choose what to do with it.</p><p><strong>Before this lesson:</strong> Operators and movement.</p><p>v starts characterwise selection; V starts whole-line selection. Move to adjust the highlighted region, then d deletes, y copies or c changes it. Esc cancels selection. Adjust the selection before committing it. Native Vim also offers gv to reselect; this browser exercise does not rely on that command. A text object can be clearer for a known boundary, but visible selection is useful for irregular regions.</p><h3>Example</h3><p>From the start of a short phrase, v then e highlights one word. Extend with another e if two words belong to the edit. V then j selects two entire lines.</p><p>Use Reset to try again.</p>","teaches":["visual:v","visual:V"],"introduces":["v","V","gv","d","y","c","e","j","k"],"constraints":[],"drills":[{"task":"Select and remove exactly the unwanted phrase shown in the target; preserve its surrounding punctuation and spacing.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"Message: Remove old note\nKeep the archive unchanged.","startCursor":{"line":0,"ch":9},"paths":[{"keys":["v","6","l","d"],"tier":"idiomatic","technique":"visual:v","core":["visual:v"],"note":"Characterwise selection includes its final highlighted character. Adjust the boundary before deleting."}],"target":"Message: old note\nKeep the archive unchanged.","language":"text","evidence":"guided","canonicalKey":"intermediate.12#0","canonicalFingerprint":"1wywazn"},{"task":"Remove the unwanted whole lines. Keep the heading and archive; the starting column should not matter.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"Keep heading\nRemove draft note\nKeep archive","startCursor":{"line":1,"ch":0},"paths":[{"keys":["V","d"],"tier":"idiomatic","technique":"visual:V","core":["visual:V"],"note":"V selects whole lines, including their line endings."}],"target":"Keep heading\nKeep archive","language":"text","evidence":"guided","canonicalKey":"intermediate.12#1","canonicalFingerprint":"1jwrmt8"}]}}}