diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index ab380184fc..b496dc5240 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -372,6 +372,7 @@ notation meaning equivalent decimal value(s) ~ control-key *control* *ctrl* * alt-key or meta-key *META* *ALT* * same as * meta-key when it's not alt * command-key or "super" key *, on the condition that + both keys are mapped, otherwise the mapping applies to + both. + *:ju* *:jumps* :ju[mps] Print the jump list (not a motion command). diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 0a16cb0e96..7375cd6a82 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -104,6 +104,9 @@ The following new APIs and features were added. • |nvim_set_keymap()| and |nvim_del_keymap()| now support abbreviations. +• Builtin TUI can now recognize "super" (| and are represented in +the same way, as are and , and , and and . + +Modern terminal emulators are able to distinguish between these pairs of keys +by encoding control modifiers differently. There are two common but distinct +ways of doing this, known as "modifyOtherKeys" and "CSI u". Nvim supports both +encoding methods and at startup will tell the terminal emulator that it +understands these key encodings. If your terminal emulator supports it then +this will allow you to map the key pairs listed above separately. || + Nvim uses libtermkey to convert terminal escape sequences to key codes. |terminfo| is used first, and CSI sequences not in |terminfo| (including -extended keys a.k.a. modifyOtherKeys or "CSI u") can also be parsed. +extended keys a.k.a. "modifyOtherKeys" or "CSI u") can also be parsed. + For example, when running Nvim in tmux, this makes Nvim leave Insert mode and go to the window below: > tmux send-keys 'Escape' [ 2 7 u 'C-W' j @@ -124,42 +136,22 @@ For example, this sequence is recognized by Nvim as : > and can be used differently from in mappings. *tui-modifyOtherKeys* *tui-csiu* -Historically, terminal emulators could not distinguish between certain control -key modifiers and other keys. For example, and are represented the -same way, as are and , and , and and . This -meant that Nvim also could not map these keys separately. - -Modern terminal emulators are able to distinguish between these pairs of keys -by encoding control modifiers differently. There are two common but distinct -ways of doing this, known as "modifyOtherKeys" and "CSI u". Nvim supports both -encoding methods and at startup will tell the terminal emulator that it -understands these key encodings. If your terminal emulator supports it then -this will allow you to map the key pairs listed above separately. - -At startup Nvim will query your terminal to see if it supports the CSI u +At startup Nvim will query your terminal to see if it supports the "CSI u" encoding by writing the sequence > - CSI ? u CSI c - If your terminal emulator responds with > - CSI ? u - -this means your terminal supports the CSI u encoding and Nvim will tell your +this means your terminal supports the "CSI u" encoding and Nvim will tell your terminal to enable it by writing the sequence > - CSI > 1 u - -If your terminal does not support CSI u then Nvim will instead enable the +If your terminal does not support "CSI u" then Nvim will instead enable the "modifyOtherKeys" encoding by writing the sequence > - CSI > 4 ; 2 m When Nvim exits cleanly it will send the corresponding sequence to disable the special key encoding. If Nvim does not exit cleanly then your terminal emulator could be in a bad state. If this happens, simply run "reset". - *tui-colors* Nvim uses 256 colours by default, ignoring |terminfo| for most terminal types, including "linux" (whose virtual terminals have had 256-colour support since