Still having problems with vim-mode although they are evolving. I am on Windows 7 with the latest code and followed the instructions for enabling vim mode and it continues to work partially. When I type a colon in normal mode, still nothing happens (meaning it stays in vim normal mode) except now "ignoring semicolon" gets written to the log. If I do "alt-x" and then type a colon, I am put into vim command-line mode but that kinda of defeats the purpose. Happy to track this down if you have any idea where I should be looking. Thanks.
Steve On Mon, Aug 11, 2014 at 4:03 PM, Edward K. Ream <[email protected]> wrote: > On Monday, August 11, 2014 11:02:56 AM UTC-5, Edward K. Ream wrote: >> >> On Mon, Aug 11, 2014 at 10:54 AM, Kent Tenney <[email protected]> wrote: >> > V visual select line >> > P paste on new line above >> > O put cursor on new line above, enter insert mode >> > > Done. > > Today I've created a new style of programming, using vc.do, a thin wrapper > for k.simulateCommand. Take a look at the new code. You will instantly see > the difference:: > > def vim_O(vc): > '''Open a new line above the current line N times.''' > if vc.in_tree(vc.w): > c = vc.c > c.bodyWantsFocusNow() > vc.w = c.frame.body.bodyCtrl > if vc.is_text_widget(vc.w): > vc.do(['beginning-of-line','insert-newline','back-char']) > vc.done() > else: > vc.quit() > > def vim_P(vc): > '''Paste text at the cursor or paste a node before the present node.''' > if vc.in_tree(vc.w): > vc.do(['goto-prev-visible','paste-node']) > vc.done() > elif vc.is_text_widget(vc.w): > vc.do(['back-char','paste-text']) > vc.done() > else: > vc.quit() > > And here is my favorite. It would be very hard to get right using widget > methods:: > > def vim_V(vc): > '''Visually select line.''' > if vc.is_text_widget(vc.w): > if vc.state == 'visual': > bx = 'beginning-of-line-extend-selection' > ex = 'end-of-line-extend-selection' > s = vc.w.getAllText() > i = vc.w.getInsertPoint() > if vc.on_same_line(s,i,vc.vis_mode_i): > vc.do([bx,ex]) > else: > vc.do(ex if vc.vis_mode_i < i else bx) > else: > vc.do([bx,ex]) > vc.done() > else: > vc.quit() > > All the vc key-handlers use this style. The switch happened earlier today. > > This is a style I heartily recommend to anyone writing scripts that could > be based on Leo's commands. > > Edward > > P.S. vc.do now can take either a single command name or a list of command > names. Here it is:: > > def do(vc,o): > '''Do one or more Leo commands by name.''' > if isinstance(o,(tuple,list)): > for z in o: > vc.c.k.simulateCommand(z,event=vc.event) > else: > vc.c.k.simulateCommand(o,event=vc.event) > > To make this work, k.simulateCommand now takes an optional event keyword > arg. > > EKR > > -- > You received this message because you are subscribed to the Google Groups > "leo-editor" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/leo-editor. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
