Wednesday, May 30, 2012

Re: Weird cursors behaviour when using vim in terminal in insert mode

On 2012-05-30, Pablo Giménez wrote:

> 2012/5/30 Pablo Giménez:
> > 2012/5/29 Gary Johnson:
> >> On 2012-05-29, Pablo Giménez Pizarro wrote:
> >>> Enviado desde mi iPhone
> >>>
> >>> El 29 May 2012, a las 20:05, Gary Johnson escribió:
> >>>
> >>> > On 2012-05-29, Pablo Giménez wrote:
> >>> >> Hi all.
> >>> >> I have an issue using vim in the termninal.
> >>> >> Every time I go to Indert mode and try to sue the cursor it just
> >>> >> begging to write the letter A,B,C,D and creates a new line.
> >>> >> I have been digging and seems it is because of the internal definition
> >>> >> of the termcap in Vim.
> >>> >> So I tried the next:
> >>> >> set term=builtin_ansi
> >>> >>
> >>> >> But then it is messing up the colors.
> >>> >> The term is xterm-256color by default.
> >>> >> Is there ane way to get the cursors working properly without changing
> >>> >> the termn, or using the xterm terminal?
> >>> >> I forgot  to say I am using latest vim 7.3.

> Ja I got where is the problem.
> I have these keymaps for the completion popmenu:
> inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>"
> inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
> inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
> inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
> inoremap <expr> <PageDown> pumvisible() ?
> "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
> inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>"
> : "\<PageUp>"
>
> I got them from the vim wiki, so I am not sure why they are breaking
> my cursors when working from a terminal.
> It is supposed that if pop menu is not visible they just return the
> same key isnt it?

Well, that was easy: I just executed the first inoremap above and
now when I use the arrow keys in insert mode I get A, B, C and D.

I don't have time at the moment to look at this more closely, but it
looks like possibly a bug. I can verify that the pumvisible()
function is returning the correct values. It appears that when an
Esc arrives in the input buffer, the process of handling it with the
inoremap disconnects it from the following characters so that it and
the following characters are no longer recognized as an escape
sequence. The behavior might be affected by 'timeout' and/or
'ttimeout', or maybe those options are being ignored when they
shouldn't be.

Maybe someone with more experience with these mappings can chime in.

Regards,
Gary

--
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

No comments: