{"schemaVersion":1,"contentVersion":"3.4.0","id":"foundation.10","languages":{"javascript":{"id":"foundation.10","title":"Search for a destination","moduleName":"Search and apply","tips":"","concept":"<p class=\"lead\">Finish a forward or backward search and understand wrapping at the buffer edge.</p><p><strong>Before this lesson:</strong> Reach a line or buffer boundary.</p><p>/ starts a forward search; ? searches backward. Type a literal fragment and press Enter. Esc cancels a search in progress. Searching continues beyond the current line and wraps at the buffer edge. Search can match a substring inside a longer word; inspect the destination.</p><div class=\"pkeys\"><kbd>/</kbd> <kbd>?</kbd> <kbd>Enter</kbd> <kbd>Esc</kbd></div><h3>Example</h3><p>From the top of a note, /agenda then Enter reaches the next agenda. From below it, ?agenda then Enter searches backward. The search prompt is not Insert mode; pressing Enter commits the destination.</p><h4>Worked text</h4><pre class=\"lesson-example\">// Read next\nconst message = \"agenda\";</pre><p>Use Reset to try again.</p>","teaches":["search:/","search"],"introduces":["search"],"constraints":[],"drills":[{"task":"Search forward to the message on the next line. Finish on line 2, column 27, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"jsx","start":"const archive = \"Keep review history\";\nconst message = \"Read the review now\";\nconst next = \"Finish later\";","startCursor":{"line":0,"ch":37},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":26},"language":"javascript","evidence":"guided","canonicalKey":"foundation.10#0","canonicalFingerprint":"1e4d7fi"},{"task":"Search backward to the message. Finish on line 2, column 27, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"jsx","start":"const archive = \"Keep review history\";\nconst message = \"Read the review now\";\nconst next = \"Finish later\";","startCursor":{"line":2,"ch":0},"paths":[{"keys":["?","review","<CR>"],"tier":"idiomatic","technique":"search","core":["search"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":26},"language":"javascript","evidence":"guided","canonicalKey":"foundation.10#1","canonicalFingerprint":"1e4d7fi"},{"task":"Search forward from the final line, wrapping to the archive. Finish on line 1, column 23, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"jsx","start":"const archive = \"Keep review history\";\nconst message = \"Read the review now\";\nconst next = \"Finish later\";","startCursor":{"line":2,"ch":0},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":0,"ch":22},"language":"javascript","evidence":"guided","canonicalKey":"foundation.10#2","canonicalFingerprint":"1e4fgzf"}]},"python":{"id":"foundation.10","title":"Search for a destination","moduleName":"Search and apply","tips":"","concept":"<p class=\"lead\">Finish a forward or backward search and understand wrapping at the buffer edge.</p><p><strong>Before this lesson:</strong> Reach a line or buffer boundary.</p><p>/ starts a forward search; ? searches backward. Type a literal fragment and press Enter. Esc cancels a search in progress. Searching continues beyond the current line and wraps at the buffer edge. Search can match a substring inside a longer word; inspect the destination.</p><div class=\"pkeys\"><kbd>/</kbd> <kbd>?</kbd> <kbd>Enter</kbd> <kbd>Esc</kbd></div><h3>Example</h3><p>From the top of a note, /agenda then Enter reaches the next agenda. From below it, ?agenda then Enter searches backward. The search prompt is not Insert mode; pressing Enter commits the destination.</p><h4>Worked text</h4><pre class=\"lesson-example\"># Read next\nmessage = \"agenda\"</pre><p>Use Reset to try again.</p>","teaches":["search:/","search"],"introduces":["search"],"constraints":[],"drills":[{"task":"Search forward to the message on the next line. Finish on line 2, column 21, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"python","start":"archive = \"Keep review history\"\nmessage = \"Read the review now\"\nnext = \"Finish later\"","startCursor":{"line":0,"ch":30},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":20},"language":"python","evidence":"guided","canonicalKey":"foundation.10#0","canonicalFingerprint":"1e4d7fi"},{"task":"Search backward to the message. Finish on line 2, column 21, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"python","start":"archive = \"Keep review history\"\nmessage = \"Read the review now\"\nnext = \"Finish later\"","startCursor":{"line":2,"ch":0},"paths":[{"keys":["?","review","<CR>"],"tier":"idiomatic","technique":"search","core":["search"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":20},"language":"python","evidence":"guided","canonicalKey":"foundation.10#1","canonicalFingerprint":"1e4d7fi"},{"task":"Search forward from the final line, wrapping to the archive. Finish on line 1, column 17, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"python","start":"archive = \"Keep review history\"\nmessage = \"Read the review now\"\nnext = \"Finish later\"","startCursor":{"line":2,"ch":0},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":0,"ch":16},"language":"python","evidence":"guided","canonicalKey":"foundation.10#2","canonicalFingerprint":"1e4fgzf"}]},"text":{"id":"foundation.10","title":"Search for a destination","moduleName":"Search and apply","tips":"","concept":"<p class=\"lead\">Finish a forward or backward search and understand wrapping at the buffer edge.</p><p><strong>Before this lesson:</strong> Reach a line or buffer boundary.</p><p>/ starts a forward search; ? searches backward. Type a literal fragment and press Enter. Esc cancels a search in progress. Searching continues beyond the current line and wraps at the buffer edge. Search can match a substring inside a longer word; inspect the destination.</p><div class=\"pkeys\"><kbd>/</kbd> <kbd>?</kbd> <kbd>Enter</kbd> <kbd>Esc</kbd></div><h3>Example</h3><p>From the top of a note, /agenda then Enter reaches the next agenda. From below it, ?agenda then Enter searches backward. The search prompt is not Insert mode; pressing Enter commits the destination.</p><h4>Worked text</h4><pre class=\"lesson-example\">Read next\nMessage: agenda</pre><p>Use Reset to try again.</p>","teaches":["search:/","search"],"introduces":["search"],"constraints":[],"drills":[{"task":"Search forward to the message on the next line. Finish on line 2, column 19, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"text/plain","start":"Archive: Keep review history\nMessage: Read the review now\nNext: Finish later","startCursor":{"line":0,"ch":27},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":18},"language":"text","evidence":"guided","canonicalKey":"foundation.10#0","canonicalFingerprint":"1e4d7fi"},{"task":"Search backward to the message. Finish on line 2, column 19, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"text/plain","start":"Archive: Keep review history\nMessage: Read the review now\nNext: Finish later","startCursor":{"line":2,"ch":0},"paths":[{"keys":["?","review","<CR>"],"tier":"idiomatic","technique":"search","core":["search"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":1,"ch":18},"language":"text","evidence":"guided","canonicalKey":"foundation.10#1","canonicalFingerprint":"1e4d7fi"},{"task":"Search forward from the final line, wrapping to the archive. Finish on line 1, column 15, without changing the text.","hint":"This is a movement task. Keep the text unchanged and check the requested cursor destination.","mode":"text/plain","start":"Archive: Keep review history\nMessage: Read the review now\nNext: Finish later","startCursor":{"line":2,"ch":0},"paths":[{"keys":["/","review","<CR>"],"tier":"idiomatic","technique":"search:/","core":["search:/"],"note":"Search commits with Enter; at the buffer edge it wraps. Inspect which occurrence you reached."}],"kind":"navigate","land":{"line":0,"ch":14},"language":"text","evidence":"guided","canonicalKey":"foundation.10#2","canonicalFingerprint":"1e4fgzf"}]}}}