Feature requests: InsertCharPre and repeating CursorHold events
Over the past 6 months or so I've been working on a plugin which turns
a Vim buffer into a terminal emulator and allows users to run a shell
in that buffer:
It works OK, but depends on several ugly kludges. If Vim added the
these two events these kludges could be removed and plugin writers
would be freed up considerably. Since adding a shell window is at the
very top of the list of voted features, I hope the fine developers of
Vim would consider making these a priority :-)
The first is the "InsertCharPre" event, described around line 3301 of
InsertCharPre - user typed character Insert mode, before inserting
char. Pattern is matched with text before the
Set v:char to the character, can be changed.
(not triggered when 'paste' is set).
Having this event would allow a plugin to capture all input in insert
mode and send it to the terminal, for true full-duplex behavior.
Currently you are required to map all keys, which is only sane if you
limit yourself to the extended ASCII character set. Having an insert
char event that works with multi-byte characters would allow users to
write a plugin which works in all locales.
There is already a GetChar event patch on vim.org which may be close,
however the way it's described in todo.txt is much cleaner.
The second event is repeatable CursorHold/I, described around 3252 of
8 Add an event like CursorHold that is triggered repeatedly, not
just once after typing something.
This gives a clean way of polling a background shell or debugger.
Continuous polling is critical for making a shell plugin work, and the
current feedkeys() workarounds barely work and suck up too much cpu.
If I knew C I would attack these myself, but until then thanks for
considering this request.
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php