Tony Mechelynck wrote:

> On 26/03/10 23:01, Yakov wrote:
> > There is trick for periodic execution, involving K_IGNORE and feedkeys
> > [1].
> > In the lastest vim 7.2.141, I cannot make it to work anymore.
> > Timer() is executed only once, as seen from 'echo strftime' printout.
> > Can anybody confirm this ? Am I missing some global setting ?
> > 'updatetime' is set to 200.
> >
> > autocmd CursorHold * call Timer()
> > function! Timer()
> >    let K_IGNORE = "\x80\xFD\x35"   " internal key code that is ignored
> >    call feedkeys(K_IGNORE)
> >    echo strftime("%c") " this for debugging
> > endfunction
> >
> > [1] http://vim.wikia.com/wiki/Timer_to_execute_commands_periodically
> >
> 
> I confirm as follows:
> 
> I tried
> 
>       :augroup clock
>       :au CursorHold * call feedkeys("\x80\xFD\x35") | echon strftime('%c') " 
> "
>       :augroup END
> 
> both in gvim (with &enc == "utf-8") and in konsole (with &enc == 
> "Latin1") and saw the datestamp displayed only once while I kept hands 
> off the keyboard & mouse.
> 
> In both cases, Huge version 7.2.411, compiled with GTK2/Gnome2 GUI; 
> 'updatetime' is set to 4000 (the default).
> 
> 
> Maybe I missed something too?

This was changed in patch 7.2.025:

Patch 7.2.025
Problem:    When a CursorHold event invokes system() it is retriggered over
            and over again.
Solution:   Don't reset did_cursorhold when getting K_IGNORE.
Files:      src/normal.c


You can use something like "f\e" instead:

 autocmd CursorHold * call Timer()
 function! Timer()
    call feedkeys("f\e")
    echo strftime("%c") " this for debugging
 endfunction

This starts a "f" command and then cancels it with Esc.
Does that have more side effects?  We could add something like CTRL-\
CTRL-N that doesn't do anything.  Much better than using an undocumented
key code.

-- 
You can be stopped by the police for biking over 65 miles per hour.
You are not allowed to walk across a street on your hands.
                [real standing laws in Connecticut, United States of America]

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

To unsubscribe from this group, send email to 
vim_use+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to