<div dir="ltr">Hi Marcel,<div><br></div><div>    I like the new Ctrl-J.  But there&#39;s one feature that was lost.  It used to be that one could type over some string and then hit Ctrl-J to repeat the dir on the next occurrence of the string.  For examplee, consider the following:</div><div><br></div><div><div><br></div><div><span class="" style="white-space:pre">                </span>[JumpZero]<span class="" style="white-space:pre">        </span>-&gt; [opcode caseOf: {</div><div><span class="" style="white-space:pre">                                                </span>[CmpRR]<span class="" style="white-space:pre">        </span>-&gt; [branch setOpcode: BrEqRR andOperandsFrom: self.</div><div><span class="" style="white-space:pre">                                                                        </span>branch operands at: 3 put: (operands at: 1).</div><div><span class="" style="white-space:pre">                                                                        </span>opcode := Label].</div><div><span class="" style="white-space:pre">                                                                </span>}].</div><div><span class="" style="white-space:pre">                </span>[JumpNonZero]-&gt; [opcode caseOf: {</div><div><span class="" style="white-space:pre">                                                </span>[CmpRR]<span class="" style="white-space:pre">        </span>-&gt; [branch setOpcode: BrNeRR andOperandsFrom: self.</div><div><span class="" style="white-space:pre">                                                                        </span>branch operands at: 3 put: (operands at: 1).</div><div><span class="" style="white-space:pre">                                                                        </span>opcode := Label].</div><div><span class="" style="white-space:pre">                                                                </span>}].</div><div><span class="" style="white-space:pre">                </span>[JumpLongZero]-&gt; [opcode caseOf: {</div><div><span class="" style="white-space:pre">                                                </span>[CmpRR]<span class="" style="white-space:pre">        </span>-&gt; [branch setOpcode: BrNeRR andOperandsFrom: self.</div><div><span class="" style="white-space:pre">                                                                        </span>&quot;skip the following long branch&quot;</div><div><span class="" style="white-space:pre">                                                                        </span>branch operands at: 3 put: self jumpLongByteSize.</div><div><span class="" style="white-space:pre">                                                                        </span>opcode := JumpLong].</div><div><span class="" style="white-space:pre">                                                                </span>}].</div><div><span class="" style="white-space:pre">                </span>[JumpLongNonZero]-&gt; [opcode caseOf: {</div><div><span class="" style="white-space:pre">                                                </span>[CmpRR]<span class="" style="white-space:pre">        </span>-&gt; [branch setOpcode: BrEqRR andOperandsFrom: self.</div><div><span class="" style="white-space:pre">                                                                        </span>&quot;skip the following long branch&quot;</div><div><span class="" style="white-space:pre">                                                                        </span>branch operands at: 3 put: self jumpLongByteSize.</div><div><span class="" style="white-space:pre">                                                                        </span>opcode := JumpLong].</div><div><span class="" style="white-space:pre">                                                                        </span>opcode := Label].</div><div><span class="" style="white-space:pre">                                                                </span>}].<br></div><div><br></div><div>where it turns out branch operands at: 3 should read branch operands at: 2.  So it used to be that one could select the first &quot;at: 3&quot;, type &quot;at: 2&quot;, and then hit Ctrl-J to edit the next, Ctrl-J to edit the one after that and so on.</div><div><br></div><div>I think it&#39;s just making sure that the selection that is replaced by Ctrl-J becomes the new search string for copy/replace.</div><div><br></div><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>