On 4/23/07, A.J.Mechelynck <[EMAIL PROTECTED]> wrote:
Виктор Кожухаров wrote:
> Hello,
>
> I think there might be a bug with vim7, and they way it handles the
> arrow keys in a terminal.
> The problem is, that in insert mode, the arrow keys don't navigate
> through the text, but output letters. For example, pressing <Up> in
> insert mode would do the equivalent of OA<Esc> in normal mode. All the
> arrow keys are printing the letters that are part of their escape codes
> in the line above the current one.
> Also, the reason I think this is a bug is that, on the same machines,
> vim6 works correctly. the TERM variable is set to xterm in both the
> terminal and in vim, and this behaviour occurs in any terminal.
> Furthermore, none of the timeout options have any effect on this
> behaviour.
> Vim has been compiled with +terminfo and +termresponse against
> ncurses-5.6
Don't you have one version compiled with +terminfo and the other with -terminfo?
Are both versions running with the same value of 'ttybuiltin'?
Is 'term' left at its default?
Try the following in both versions:
:echo has("terminfo")
:set term? ttybuiltin?
Each of the above might explain (with a badly-set-up system) the difference in
behaviour you're seeing.
Also, does it get better or worse if you run vim7 or vim6 (try both) as
vim -u NONE -N
to avoid loading the vimrc, gvimrc and plugins?
It turned out that these mappings broke the arrow keys in the terminal:
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>"
Best regards,
Tony.
--
"If a camel flies, no one laughs if it doesn't get very far."
-- Paul White