{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.6","languages":{"javascript":{"id":"intermediate.6","title":"Protect a useful copy","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Keep copied material across unrelated deletions and choose a named register.</p><p><strong>Before this lesson:</strong> Copy and move text.</p><p>Yanking also fills register 0; a later deletion replaces the unnamed register but not that last yank. \"0p puts the last yank. \"_dd discards a line without replacing your copy. \"ayy copies a line into named register a, and \"ap puts it. Lowercase a replaces that named register; uppercase appends and is outside these exercises.</p><h3>Example</h3><p>Copy a heading with yy, delete an obsolete line with dd, then use \"0p to put the heading instead of the deleted line.</p><p>Use Reset to try again.</p>","teaches":["register:0","register:_","register:a"],"introduces":["register","y","p","yy","dd"],"constraints":[],"drills":[{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// Review dates\n// Obsolete note\n// Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","d","d","1","G","0","\"","0","p"],"tier":"idiomatic","technique":"register:0","core":["register:0"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"// Review dates\n// Review dates\n// Keep archive","language":"javascript","evidence":"guided","canonicalKey":"intermediate.6#0","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// Review dates\n// Obsolete note\n// Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","\"","_","d","d","1","G","0","p"],"tier":"idiomatic","technique":"register:_","core":["register:_"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"// Review dates\n// Review dates\n// Keep archive","language":"javascript","evidence":"guided","canonicalKey":"intermediate.6#1","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"jsx","start":"// Review dates\n// Obsolete note\n// Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["\"","a","y","y","2","G","0","d","d","1","G","0","\"","a","p"],"tier":"idiomatic","technique":"register:a","core":["register:a"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"// Review dates\n// Review dates\n// Keep archive","language":"javascript","evidence":"guided","canonicalKey":"intermediate.6#2","canonicalFingerprint":"is8km9"}]},"python":{"id":"intermediate.6","title":"Protect a useful copy","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Keep copied material across unrelated deletions and choose a named register.</p><p><strong>Before this lesson:</strong> Copy and move text.</p><p>Yanking also fills register 0; a later deletion replaces the unnamed register but not that last yank. \"0p puts the last yank. \"_dd discards a line without replacing your copy. \"ayy copies a line into named register a, and \"ap puts it. Lowercase a replaces that named register; uppercase appends and is outside these exercises.</p><h3>Example</h3><p>Copy a heading with yy, delete an obsolete line with dd, then use \"0p to put the heading instead of the deleted line.</p><p>Use Reset to try again.</p>","teaches":["register:0","register:_","register:a"],"introduces":["register","y","p","yy","dd"],"constraints":[],"drills":[{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# Review dates\n# Obsolete note\n# Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","d","d","1","G","0","\"","0","p"],"tier":"idiomatic","technique":"register:0","core":["register:0"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"# Review dates\n# Review dates\n# Keep archive","language":"python","evidence":"guided","canonicalKey":"intermediate.6#0","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# Review dates\n# Obsolete note\n# Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","\"","_","d","d","1","G","0","p"],"tier":"idiomatic","technique":"register:_","core":["register:_"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"# Review dates\n# Review dates\n# Keep archive","language":"python","evidence":"guided","canonicalKey":"intermediate.6#1","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"python","start":"# Review dates\n# Obsolete note\n# Keep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["\"","a","y","y","2","G","0","d","d","1","G","0","\"","a","p"],"tier":"idiomatic","technique":"register:a","core":["register:a"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"# Review dates\n# Review dates\n# Keep archive","language":"python","evidence":"guided","canonicalKey":"intermediate.6#2","canonicalFingerprint":"is8km9"}]},"text":{"id":"intermediate.6","title":"Protect a useful copy","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Keep copied material across unrelated deletions and choose a named register.</p><p><strong>Before this lesson:</strong> Copy and move text.</p><p>Yanking also fills register 0; a later deletion replaces the unnamed register but not that last yank. \"0p puts the last yank. \"_dd discards a line without replacing your copy. \"ayy copies a line into named register a, and \"ap puts it. Lowercase a replaces that named register; uppercase appends and is outside these exercises.</p><h3>Example</h3><p>Copy a heading with yy, delete an obsolete line with dd, then use \"0p to put the heading instead of the deleted line.</p><p>Use Reset to try again.</p>","teaches":["register:0","register:_","register:a"],"introduces":["register","y","p","yy","dd"],"constraints":[],"drills":[{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"Review dates\nObsolete note\nKeep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","d","d","1","G","0","\"","0","p"],"tier":"idiomatic","technique":"register:0","core":["register:0"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"Review dates\nReview dates\nKeep archive","language":"text","evidence":"guided","canonicalKey":"intermediate.6#0","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"Review dates\nObsolete note\nKeep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["y","y","2","G","0","\"","_","d","d","1","G","0","p"],"tier":"idiomatic","technique":"register:_","core":["register:_"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"Review dates\nReview dates\nKeep archive","language":"text","evidence":"guided","canonicalKey":"intermediate.6#1","canonicalFingerprint":"is8km9"},{"task":"Copy the useful note, discard the obsolete note, and place the copy immediately below its source. Preserve the archive and footer.","hint":"Compare the complete target, including spaces, delimiters and protected lines. Undo is available.","mode":"text/plain","start":"Review dates\nObsolete note\nKeep archive","startCursor":{"line":0,"ch":0},"paths":[{"keys":["\"","a","y","y","2","G","0","d","d","1","G","0","\"","a","p"],"tier":"idiomatic","technique":"register:a","core":["register:a"],"note":"The deletion must not turn into the content you put. Use the last yank, a protected unnamed copy or an explicit named register."}],"target":"Review dates\nReview dates\nKeep archive","language":"text","evidence":"guided","canonicalKey":"intermediate.6#2","canonicalFingerprint":"is8km9"}]}}}