terrychou / iVim

A vim port to iOS.
598 stars 35 forks source link

<D-z> and <D-q> input do not work as expected #226

Open majick opened 2 years ago

majick commented 2 years ago

Summary When attempting to input Cmd-Z -- for example due to having set a mapping or using a ^K digraph -- requires the Cmd key to be held down much longer. Cmd-Q or <D-q> cannot be input at all. :h ios-external-keyboard states the following which does not mention these chords are reserved.

b. chords <D-s>, <D-h> and <D-.> are reserved by iOS system.

It's a separate small documentation bug that actually <D-s> isn't reserved and works exactly as the user would expect.

Expected Result <D-z> and <D-q> should be usable like all other key chords.

Actual Result When attempting to enter <D-z> normally at a normal typing speed no input is recognized at all. In order to succeed I must hold down the Cmd key until the "Show Keyboard Menu" popup is shown (part of the OS shortcuts reminder feature) and then press the Z key. When attempting to enter <D-q> no input is recognized whatsoever.

<S-z> <C-z> and z all work normally at a correct typing speed. <S-q> <C-q> and q also work normally.

Additional information Tested with no mappings of my own that should interfere with these chords.

iVim version: 2.47(2) iVim install source: App Store

iVim hardware keyboard settings are Map [caps lock] to: none Map [ctrl] to [esc] on release: false Enable [alt] mapping: true Key Repeating: true

iVim launch options are Arguments: Always: false

General Keyboard > Hardware Keyboard > Modifier Keys settings are Caps Lock Key: No Action Control Key: Control Option Key: Option Command Key: Command Globe Key: Globe

System information iPad Air 4th Generation iPadOS Version 15.3.1 Apple Magic Keyboard Hardware Version 0009 Apple Magic Keyboard Firmware Version 0450.0523.0200

majick commented 1 year ago

This is present even with subsequent OS updates. I'm pretty sure it's an iVim input bug at this point rather than something the OS is doing.

terrychou commented 1 year ago

According to my latest test (iPadOS 16.0), 3 <D- keypresses <D-h>, <D-q> or <D-z> are not working.

The case is not that iVim ignores these on purpose. Actually, iVim requests them as others, but the system never sends their pressing events to iVim (reserved).

However, this may change version by version. One example is the <D-.> as discussed in #256. Another is the <D-s>, which is working now but not when that piece of documentation was written.