I had the hardest time with the compiler and typing when dlsymming 
vi_insertion_keymap (the types the compiler wanted didn't agree with the type 
of the parameter); but when I looked in the readline source code, I found a 
another solution that will work for both emacs and vi:

in rl_startup_hook:

Keymap          current_readline_keymap;

current_readline_keymap = rl_get_keymap();
rl_bind_key_in_map('\t', rl_insert, current_readline_keymap);

Problem solved.

Thank you.

--Sam


 ---- On Thu, 05 Oct 2023 09:30:20 -0400  Chet Ramey  wrote --- 
 > On 9/29/23 11:29 AM, Sam Habiel wrote:
 > > The documentation says this:
 > > 
 > >> Thus, to disable the default TAB behavior, the following suffices:
 > >> rl_bind_key ('\t', rl_insert);
 > > 
 > > This indeed works for emacs mode; but apparently it doesn't work for vi 
 > > mode. Any tips on how to achieve the same for vi mode?
 > 
 > That call modifies the current keymap. If you want to ensure that you
 > change it for vi mode, use something like
 > 
 > rl_bind_key_in_map ('\t', rl_insert, vi_insertion_keymap);
 > 
 > 
 > -- 
 > ``The lyf so short, the craft so long to lerne.'' - Chaucer
 >          ``Ars longa, vita brevis'' - Hippocrates
 > Chet Ramey, UTech, CWRU    [email protected]    http://tiswww.cwru.edu/~chet/
 > 
 > 

Reply via email to