add word-skipping ctrl keybindings to new repl
ret = key[s]
s += 1
if ctrl:
- if len(ret) > 1:
- raise KeySpecError("\\C- must be followed by a character")
- ret = chr(ord(ret) & 0x1F) # curses.ascii.ctrl()
+ if len(ret) == 1:
+ ret = chr(ord(ret) & 0x1F) # curses.ascii.ctrl()
+ elif ret in {"left", "right"}:
+ ret = f"ctrl {ret}"
+ else:
+ raise KeySpecError("\\C- followed by invalid key")
if meta:
ret = ["\033", ret]
else:
(r"\<up>", "up"),
(r"\<down>", "down"),
(r"\<left>", "left"),
+ (r"\C-\<left>", "backward-word"),
(r"\<right>", "right"),
+ (r"\C-\<right>", "forward-word"),
(r"\<delete>", "delete"),
(r"\<backspace>", "backspace"),
(r"\M-\<backspace>", "backward-kill-word"),