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.

Reply via email to