From ef67ba5cf4e20be893558f8486922b9ab71d7620 Mon Sep 17 00:00:00 2001 From: Marco Mayer Date: Wed, 19 Mar 2025 22:11:26 +0100 Subject: [PATCH] feat: vi-like behavior when pressing enter in multiline-mode while in vi normal/navigation-mode --- aider/io.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/aider/io.py b/aider/io.py index 81222a6bb..b31d9dd72 100644 --- a/aider/io.py +++ b/aider/io.py @@ -18,6 +18,7 @@ from prompt_toolkit.enums import EditingMode from prompt_toolkit.filters import Condition, is_searching from prompt_toolkit.history import FileHistory from prompt_toolkit.key_binding import KeyBindings +from prompt_toolkit.key_binding.vi_state import InputMode from prompt_toolkit.keys import Keys from prompt_toolkit.lexers import PygmentsLexer from prompt_toolkit.output.vt100 import is_dumb_terminal @@ -543,8 +544,8 @@ class InputOutput: @kb.add("enter", eager=True, filter=~is_searching) def _(event): "Handle Enter key press" - if self.multiline_mode: - # In multiline mode, Enter adds a newline + if self.multiline_mode and not (self.editingmode == EditingMode.VI and event.app.vi_state.input_mode == InputMode.NAVIGATION): + # In multiline mode and if not in vi-mode or vi navigation/normal mode, Enter adds a newline event.current_buffer.insert_text("\n") else: # In normal mode, Enter submits