Open Snehil-Shah opened 3 months ago
Most of Julia's keybindings seem reasonable. IPython's are a little hard to follow; however, some of the autosuggestion bindings could be useful.
Should we allow multiple keybindings for an action?
Seems fine to me.
Should we allow configuring basic actions like backspace
and moving left/right (using arrow keys) which are implemented by readline? We would have to override the default readline behavior to make it configurable.
Update: Let's just make it configurable, instead of reimplementing the behavior, we can just "pipe" the new key binding to call the old key binding sequence.
Whatever you think makes sense. My initial thought was that supporting overriding for those keybindings seems like a rabbit hole if it means overriding readline
, but if you think you have a reasonable workaround, seems fine to me.
Should I break it into separate PRs, namely:
Description
This RFC proposes adding support for custom key bindings in the REPL.
Some prior art:
Julia: supports key bindings for actions like editing, cursor movement, and program control. Here's the full list of actions
IPython: They also support multiple key bindings for a single action. Similar to how we have the right arrow and TAB to auto-complete a suggestion. They also have auto-closing pairs as "key bindings", to trigger the 'auto-close-parentheses' is mapped to the key
(
. Here's the full list of actionsWe would also want to support having custom key bindings for current actions like
Ctrl+O
for inserting a new line, or right arrow for accepting a suggestion, or the TAB key to toggle the completions etc.Would suggest reading the above lists of actions for further discussion on what we should support
Checklist
RFC:
.