CSI u is a mechanism for reporting keystrokes that is more powerful than the standard used in Unix.
The specification may be found at Fix Keyboard Input on Terminals - Please.
The protocol is sometimes referred to as
When you enable
CSI u mode you may be prompted to remove incompatible key mappings. iTerm2 has various built-in default key mappings for function keys and arrow keys that are not needed in CSI u mode. You can restore them by selecting the appropriate configuration from Load Preset.
A few items of note:
- On macOS, the Insert key is not supported. The Help key, which usually takes its place, acts like Insert.
- The numeric keypad Enter key is treated the same as the regular Enter key.
- F16 through F24 do nothing in CSI u mode. Regular keyboards don't have them, but the Touch Bar does.
In version 3.4 of iTerm2, CSI u mode adheres to the standard and does away with some backward compatibility control sequences that 3.3 supported in a deviation from the standard. These were for the following characters when combined with Control:
-, _, / ,?, 2, 6, [, and ]. If you prefer to use the non-CSI-u sequences for these codes, import this keymap file in to your profile by choosing Prefs > Profiles > Keys > Presets… > Import….
- neovim supports CSI u out of the box with no additional configuration needed.