Adds possibility to make the left Ctrl, Alt, or Cmd key function as a
second Esc key. The key will still function as a modifier if held down
in conjunction with another key. Enable by setting the user default
"MMFakeEscModifier" to:
1 = Left Ctrl
2 = Left Alt
3 = Left Cmd
any other number disables this functionality
By remapping Caps-Lock to one of the above modifier keys this enables
the use of Caps-Lock as a second (and easy to reach) Esc key. Caps-Lock
can be remapped inside "System Preferences -> Keyboard & Mouse ->
Modifier Keys...".
The Esc event is sent when the modifier key is released. If the key is
not released within a predefined timeout, then no Esc event is
generated. The timeout can be changed by setting the user default
MMFakeEscTimeout (a float, specifying the timeout in seconds).
The fact that the Esc event is sent on release makes it feel somewhat
sluggish. It is possible to have the event sent when the modifier key
is pressed by setting the user default "MMFakeEscOnKeyDown" but then the
left modifier key can only be used as an Esc key.
Keyboard input is not dropped, unless the input was received due to a
key being automatically repeated (as a consequence of the key being held
down). This way characters are never dropped while typing, but it also
avoids situations where the screen doesn't stop scrolling immediately
when "j" is released after being held.
Changing the font size up/down while the cursor was on the command line
would cause the cursor to jump away from the cmdline. This is no longer
the case. Also fixes a similar problem when showing/hiding the toolbar
by clicking the "pill button".
Since the backend now pops off all input events at once whenever it
tends to the run-loop, it is no longer necessary to coalesce scroll
wheel events. In fact, without coalescing the scroll wheel (or track
pad) feels a lot smoother.
The "New Document Here" service will create a blank document in the
currently selected directory. If new files are set to open in the
current window, then the blank document opens in a new tab in the
topmost window, otherwise a new window is opened.
In other words, Cmd-. is synonymous with Ctrl-C. The former is standard
for Mac apps whereas the latter is standard for Vim. Incidentally,
Cmd-. may thus be used as a substitute for Esc to exit insert mode.
By making gui_mch_update() a no-op the frame-rate is dramatically
increased in certain situations. The downside is that it is no longer
possible to interrupt Vim with Ctrl-C when it is busy processing.
Don't flush on gui_mch_flush(); instead only flush when forced (happens
e.g. if Vim is about to take a nap) or just before waiting for new
input. This reduces screen flicker dramatically in certain cases.
The backend keeps at most one copy of each message on the input queue.
This makes MacVim feel a lot more responsive e.g. when scrolling the
screen. It used to be that holding down 'j' to scroll and then
releasing 'j' would cause the screen to keep scrolling for a while even
after the release.