Hello Nicholas,

no, this fix doesn'nt work for me.
But I noticed that Alt Keys in Combination with "normal letters" do work.
I also remapped vim like navigation (hjkl) for navigating through the panes
and Alt-i and Alt-o for cycling through the tabs.
So when I configure tmux to send Alt Arrow Keys as Alt-hjkl and
Alt-PageUp/PageDown as Alt-i and Alt-o inside a vim pane I got what I want.
This does not fix the issue but is a good workaround.

Cheers Frank


2017-06-22 20:47 GMT+02:00 Nicholas Marriott <[email protected]>:

> Yes special keys sent with send-keys will not have the xterm flag so
> they will be the old key style not the xterm key style which vim is
> expecting.
>
> Does this fix it?
>
>
> Index: cmd-send-keys.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/tmux/cmd-send-keys.c,v
> retrieving revision 1.41
> diff -u -p -r1.41 cmd-send-keys.c
> --- cmd-send-keys.c     10 May 2017 10:46:59 -0000      1.41
> +++ cmd-send-keys.c     22 Jun 2017 18:46:57 -0000
> @@ -64,6 +64,8 @@ cmd_send_keys_inject(struct client *c, s
>         struct key_binding      *bd, bd_find;
>
>         if (wp->mode == NULL || wp->mode->key_table == NULL) {
> +               if (options_get_number(wp->window->options, "xterm-keys"))
> +                       key |= KEYC_XTERM;
>                 window_pane_key(wp, NULL, s, key, NULL);
>                 return;
>         }
> Index: input-keys.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/tmux/input-keys.c,v
> retrieving revision 1.61
> diff -u -p -r1.61 input-keys.c
> --- input-keys.c        12 Jun 2017 07:04:24 -0000      1.61
> +++ input-keys.c        22 Jun 2017 18:46:57 -0000
> @@ -177,7 +177,7 @@ input_key(struct window_pane *wp, key_co
>          * If this is a normal 7-bit key, just send it, with a leading
> escape
>          * if necessary. If it is a UTF-8 key, split it and send it.
>          */
> -       justkey = (key & ~KEYC_ESCAPE);
> +       justkey = (key & ~(KEYC_XTERM|KEYC_ESCAPE));
>         if (justkey <= 0x7f) {
>                 if (key & KEYC_ESCAPE)
>                         bufferevent_write(wp->event, "\033", 1);
> Index: window.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/tmux/window.c,v
> retrieving revision 1.198
> diff -u -p -r1.198 window.c
> --- window.c    4 Jun 2017 09:02:36 -0000       1.198
> +++ window.c    22 Jun 2017 18:46:57 -0000
> @@ -1226,7 +1226,7 @@ window_pane_key(struct window_pane *wp,
>         if (wp->mode != NULL) {
>                 wp->modelast = time(NULL);
>                 if (wp->mode->key != NULL)
> -                       wp->mode->key(wp, c, s, key, m);
> +                       wp->mode->key(wp, c, s, (key & ~KEYC_XTERM), m);
>                 return;
>         }
>
>
>
>
>
> On Wed, Jun 21, 2017 at 06:43:52AM +0200, Franky Spamschleuder wrote:
> >    Hi Nicholas,
> >    so I got once again some time left to play around and figured out the
> >    following:
> >    Alt keys does work A as usual, the problem that I have got ist with
> the
> >    alt key via tmux send-keyes. As I mentioned I used a script to switch
> >    inside vim panes and tmux panes with the same key combination.
> >    When I'm inside vim and press alt Arrow key tmux triggers A a send-key
> >    command which is not recognized correctly anymore like in version
> 2.4.A
> >    in .tmux.conf
> >    bind -n M-Up A  A if "[ $(tmux display -p '#{pane_current_command}')
> = vim
> >    ]" "send-keys M-Up" "select-pane -U"
> >    bind -n M-Down A if "[ $(tmux display -p '#{pane_current_command}') =
> vim
> >    ]" "send-keys M-Down" "select-pane -D"
> >    bind -n M-Left A if "[ $(tmux display -p '#{pane_current_command}') =
> vim
> >    ]" "send-keys M-Left" "select-pane -L"
> >    bind -n M-Right if "[ $(tmux display -p '#{pane_current_command}') =
> vim
> >    ]" "send-keys M-Right" "select-pane -R"
> >    .vimrc
> >    nnoremap <silent> <A-Up> :call TmuxMove('k')<cr>
> >    noremap <silent> <A-Down> :call TmuxMove('j')<cr>
> >    nnoremap <silent> <A-Left> :call TmuxMove('h')<cr>
> >    nnoremap <silent> <A-Right> :call TmuxMove('l')<cr>
> >    function! TmuxMove(direction)
> >    let wnr = winnr()
> >    silent! execute 'wincmd ' . a:direction
> >    " If the winnr is still the same after we moved, it is the last pane
> >    if wnr == winnr()
> >    call system('tmux select-pane -' . tr(a:direction, 'hjkl', 'LDUR'))
> >    end
> >    endfunction
> >    This script is similar toA vim-tmux-navigator and was also noticed in
> >    issue 907 in the last comment. I hope this information may help you.
> >    Regards Frank
> >    2017-05-31 12:37 GMT+02:00 Nicholas Marriott
> >    <[email protected]>:
> >
> >      tmux uses xterm style escape sequences by default now for meta +
> arrows,
> >      you will probably need to tell vim how to understand them.
> >
> >      If it doesn't get them from TERM=tmux then you will need to
> configure it
> >      some other way, ask the vim developers?
> >
> >      On Wed, May 31, 2017 at 11:50:55AM +0200, Franky Spamschleuder
> wrote:
> >      >A  A  Hi Nicholas,
> >      >A  A  so I tried export term=tmux; vimA
> >      >A  A  and test it again but it doesen't work. echo &term inside vim
> >      shoes tmux
> >      >A  A  so it should set be A correct.
> >      >A  A  Regards Frank
> >      >A  A  2017-05-31 10:46 GMT+02:00 Nicholas Marriott
> >      >A  A  <[email protected]>:
> >      >
> >      >A  A  A  You will need to configure vim to recognise what tmux
> sends
> >      for these
> >      >A  A  A  keys. Setting TERM=tmux inside may do this, or you may
> need to
> >      tell it
> >      >A  A  A  explicitly.
> >      >
> >      >A  A  A  On Wed, May 31, 2017 at 10:29:26AM +0200, Franky
> Spamschleuder
> >      wrote:
> >      >A  A  A  >AA  AA  echo $TERM
> >      >A  A  A  >AA  AA  screen-256color
> >      >A  A  A  >AA  AA  2017-05-31 10:26 GMT+02:00 Nicholas Marriott
> >      >A  A  A  >AA  AA  <[email protected]>:
> >      >A  A  A  >
> >      >A  A  A  >AA  AA  AA  Do you have TERM=tmux inside tmux or
> TERM=screen?
> >      >A  A  A  >
> >      >A  A  A  >AA  AA  AA  On Wed, May 31, 2017 at 10:17:57AM +0200,
> Franky
> >      Spamschleuder
> >      >A  A  A  wrote:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  the Alt mappings do not work in
> vim
> >      running inside
> >      >A  A  A  tmux
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  just try the following:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  put these to your vim config:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  nnoremap <silent> <A-Up> AAAA  A
> >      :execute 'wincmd A
> >      >A  A  A  k'<cr>
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  nnoremap <silent> <A-Down> A
> :execute
> >      'wincmd j'<cr>
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  nnoremap <silent> <A-Left> A
> :execute
> >      'wincmd h'<cr>
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  nnoremap <silent> <A-Right>
> :execute
> >      'wincmd l'<cr>
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  run vim, do a split and try to
> switch
> >      with these
> >      >A  A  A  bindings through
> >      >A  A  A  >AA  AA  AA  the
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  windows
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  2017-05-31 10:11 GMT+02:00
> Nicholas
> >      Marriott
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  <[email protected]>:
> >      >A  A  A  >AA  AA  AA  >
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Are you saying the keys don't
> >      work in tmux
> >      >A  A  A  itself, or just in
> >      >A  A  A  >AA  AA  AA  vim inside
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  tmux?
> >      >A  A  A  >AA  AA  AA  >
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  On Wed, May 31, 2017 at
> >      10:06:33AM +0200, Franky
> >      >A  A  A  Spamschleuder
> >      >A  A  A  >AA  AA  AA  wrote:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  konsole 17.04.1
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  2017-05-31 10:04
> >      GMT+02:00 Nicholas
> >      >A  A  A  Marriott
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA
> >      <[email protected]>:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  What
> terminal?
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  On 31 May
> 2017
> >      9:02 am, "'Franky
> >      >A  A  A  Spamschleuder'
> >      >A  A  A  >AA  AA  AA  via
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  tmux-users"
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA
> >      <[email protected]>
> >      >A  A  A  wrote:
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  Hi
> >      there,
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  I
> use
> >      alt arrow keys to
> >      >A  A  A  navigate inside
> >      >A  A  A  >AA  AA  AA  windows in vim and
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  the tmux
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
> panes.
> >      Since I updated to
> >      >A  A  A  tmux 2.5 this does
> >      >A  A  A  >AA  AA  AA  not work
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  anymore.
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  Has
> it
> >      sth. to the with the
> >      >A  A  A  Issue #907
> >      >A  A  A  >AA  AA  AA  mentioned in the
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  changelog? How
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  can
> I
> >      fix this problem?
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
> Thank
> >      you
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
> Frank
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  --
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  You
> >      received this message
> >      >A  A  A  because you are
> >      >A  A  A  >AA  AA  AA  subscribed to the
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  Google
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA
> Groups
> >      "tmux-users" group.
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  To
> >      unsubscribe from this
> >      >A  A  A  group and stop
> >      >A  A  A  >AA  AA  AA  receiving emails
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  from it, send
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  an
> email
> >      to
> >      >A  A  A  >AA  AA  AA  [email protected].
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  To
> post
> >      to this group, send
> >      >A  A  A  email to
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  [email protected].
> >      >A  A  A  >AA  AA  AA  >AAA  AAA  AAA  >AAAA  AAAA  AAAA  AAAA  For
> more
> >      options, visit
> >      >A  A  A  >AA  AA  AA  https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to