You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix MacVim Ctrl-C handling in Normal and Command-Line modes
Vim has a "ctrl_c_interrupts" mode that gets turned on in misc modes
(e.g. Normal / Command-Line mode) when <C-C> is not mapped. In this
mode, Ctrl-C has special behavior and is hard-coded (i.e. not
remappable).
There is an old bug in how MacVim handles Ctrl-C under this mode. It's
trying to be smart and aggressively clears the input queue (even
non-text-related ones) without adding anything to the input queue.
Previously it kind of worked due to a coincidence in how Vim's GUI
handled input logic, but it was fragile. The recent Vim refactor that
changed Vim GUI's input handling broke this.
Instead, don't do any of these smart input queue clearing and just do
what other Vim GUI code does and call `trash_input_buf()`, set
`set_int`, and then add the Ctrl-C to the input queue. MacVim still has
`Cmd-.` for an aggressive interrupt in case Vim is hung (which shouldn't
happen to begin with).
Fix#846
0 commit comments