On 27/05/09 21:36, [email protected] wrote:
>
> Hello,
>
> I am writing à Vim script.
> I put the script into ~/.vim/plugin folder.
> The script run automatically at the startup of Vim.
>
> I would like to know if there is an event listener function.
> I want to use it in order to know when a Vim user is pushing a key, or change
> of
> line, ...
>
> Is it possible?
>
> Thank you.
Yes and no.
Like John said, there are a number of predefined "autocommand events" in
Vim, but not at that fine a level (you can trigger an autocommand
whenever the cursor moves, but not whenever the user hits any key at
all; most autocommands are more "high-level" such as opening or saving a
file, changing windows, etc.; even starting or ending a Vim session).
See |autocmd-events| for a list, and |autocmd.txt| for how to use them.
If you really want to intercept _every_ keypress, you will have to set
up a loop testing the getchar() function, and possibly feeding
keypresses back into the typeahead buffer using feedkeys() if you want
the "default" action to be taken; but if you go that route, it is then
your responsibility to program your script "cleverly" in order to avoid
having Vim consuming all (or almost all) the CPU time because you're
constantly testing whether a key is available.
See
:help autocmd-events
:help autocmd.txt
:help getchar()
:help feedkeys()
Best regards,
Tony.
--
Command, n.:
Statement presented by a human and accepted by a computer in
such a manner as to make the human feel as if he is in control.
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---