-
-
Notifications
You must be signed in to change notification settings - Fork 684
Ctrl-C when in command-line mode doesn't work anymore #846
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Seems like e40b9d4 (v8.1.0834) broke this. It could either be a bug in Vim or a merge error on MacVim's side. |
Also, remapping |
I'm facing the same issue. Pressing |
I'm still looking into this, but the CPU usage bit is interesting info. Just for context MacVim relies on the GUI codebase in Vim itself and basically works as a special type of gVim. That's why when Vim's GUI code goes through refactor like this, sometimes bugs creep in despite a clean merge since we have to re-do some of the changes downstream to match the upstream changes. |
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 macvim-dev#846
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 Vim GUI code in other platforms 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 macvim-dev#846
Seems like snapshot 154 broke this functionality. Pressing Ctrl-C in command-line mode doesn't break out of it anymore, but a follow-on key press would.
The text was updated successfully, but these errors were encountered: