From 43b774ad1407c955bbcc535488485035d2822829 Mon Sep 17 00:00:00 2001 From: "Wu, Zhenyu" Date: Tue, 9 Dec 2025 23:00:39 +0800 Subject: [PATCH] Add some values to enum Keys Fix #2006. Although Keys.ShiftEnter, Keys.ControlEnter, Keys.ControlShiftEnter cannot work, (Keys.Escape, Keys.ControlEnter) and (Keys.Escape, Keys.ControlShiftEnter) can work. Before this PR, we have to: @add_key_binding(Keys.Escape, *"[27;8;13~") def _(event: KeyPressEvent) -> None: ... Now we can: @add_key_binding(Keys.Escape, Keys.ControlShiftEnter) def _(event: KeyPressEvent) -> None: ... --- src/prompt_toolkit/input/ansi_escape_sequences.py | 8 +++++--- src/prompt_toolkit/keys.py | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/prompt_toolkit/input/ansi_escape_sequences.py b/src/prompt_toolkit/input/ansi_escape_sequences.py index 1fba418b7..be23f991a 100644 --- a/src/prompt_toolkit/input/ansi_escape_sequences.py +++ b/src/prompt_toolkit/input/ansi_escape_sequences.py @@ -126,9 +126,11 @@ # Ref: https://invisible-island.net/xterm/modified-keys.html # These are currently unsupported, so just re-map some common ones to the # unmodified versions - "\x1b[27;2;13~": Keys.ControlM, # Shift + Enter - "\x1b[27;5;13~": Keys.ControlM, # Ctrl + Enter - "\x1b[27;6;13~": Keys.ControlM, # Ctrl + Shift + Enter + "\x1b[27;2;13~": Keys.ShiftEnter, # Shift + Enter + "\x1b[27;5;13~": Keys.ControlEnter, # Ctrl + Enter + "\x1b[27;6;13~": Keys.ControlShiftEnter, # Ctrl + Shift + Enter + "\x1b[27;7;13~": (Keys.Escape, Keys.ControlEnter), + "\x1b[27;8;13~": (Keys.Escape, Keys.ControlShiftEnter), # -- # Control + function keys. "\x1b[1;5P": Keys.ControlF1, diff --git a/src/prompt_toolkit/keys.py b/src/prompt_toolkit/keys.py index ee52aee86..94db74796 100644 --- a/src/prompt_toolkit/keys.py +++ b/src/prompt_toolkit/keys.py @@ -22,6 +22,9 @@ class Keys(str, Enum): ShiftEscape = "s-escape" ControlAt = "c-@" # Also Control-Space. + ControlEnter = "c-enter" + ControlShiftEnter = "c-s-enter" + ShiftEnter = "s-enter" ControlA = "c-a" ControlB = "c-b"