summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Walker <walker@pobox.com>2021-02-24 14:44:00 -0500
committerGitHub <noreply@github.com>2021-02-24 11:44:00 -0800
commit72bb7a2a8c47f42e3e1bb1f125aaa37cdd84f12e (patch)
treeb6205c219f08ef119032bbcf5d52798bbfb1b9aa
parent1310b2f739967e6db01039b626ecfd1d6a77ed20 (diff)
Make Alt-Enter context-sensitive, inserting a LF (#924)
... linefeed in single-line mode, but dispatching the command in multi- line mode.
-rw-r--r--changelog.md1
-rw-r--r--mycli/key_bindings.py8
2 files changed, 7 insertions, 2 deletions
diff --git a/changelog.md b/changelog.md
index 9253cff..037ff4b 100644
--- a/changelog.md
+++ b/changelog.md
@@ -10,6 +10,7 @@ Bug Fixes:
Features:
---------
* Add `-g` shortcut to option `--login-path`.
+* Alt-Enter dispatches the command in multi-line mode.
Internal:
---------
diff --git a/mycli/key_bindings.py b/mycli/key_bindings.py
index 57b917b..4a24c82 100644
--- a/mycli/key_bindings.py
+++ b/mycli/key_bindings.py
@@ -78,8 +78,12 @@ def mycli_bindings(mycli):
@kb.add('escape', 'enter')
def _(event):
- """Introduces a line break regardless of multi-line mode or not."""
+ """Introduces a line break in multi-line mode, or dispatches the
+ command in single-line mode."""
_logger.debug('Detected alt-enter key.')
- event.app.current_buffer.insert_text('\n')
+ if mycli.multi_line:
+ event.app.current_buffer.validate_and_handle()
+ else:
+ event.app.current_buffer.insert_text('\n')
return kb