Thank you Thomas, Dominik, and Chris for your replies.

tl;dr is that there was a vim bug between version 8.2.2345 Jan 14 2021
and 8.2.2564 Mar 3 2021, and the ubuntu 21.04 vim 8.2.2434 has the bug.

Chris's mention of xterm FocusIn/FocusOut led me down the right path.

vim 8.2.2345 added support for enabling FocusIn/FocusOut features,
but missed not enabling it if vim's "noesckeys" option is set.

If "noesckeys" is set, the FocusOut escape sequence from xterm is handled
as ESC, then [ then O - which ends insert, then beeps at the O.
Otherwise it could run an autocmd is one is set.

Why did I think this was fvwm related?  I think xterm only gets these events
with a suitably modern window manager.

I tried it with old window managers (ctwm, vtwm) and with no window
manager, and I only saw it with fvwm.  I should have tried with some
other modern window manager, but didn't really have one handy. (Sorry.)

This vim bug only showed up if "noesckeys" was set - I set "compatible"
(I'm old school vi-wise), which sets "noesckeys".  So you need a particular
vim patch level, and esckeys turned off to replicate it.

And just in case you're interested, or anyone else stumbles on this,
setting these X resources seems to be a suitable workaround for me, until
ubuntu updates vim:
    XTerm*allowMouseOps: false
    XTerm*disallowedMouseOps: FocusEvent

Thanks again for your help, and apologies for my unintended digression!


| When I have the vim editor open in an xterm window, in insert mode,
| and move my mouse (and focus) into another window, the vim in the
| original window receives some sort of escape sequence that causes
| it to leave insert mode and beep.

Reply via email to