From 23f8291249aec568017c051662f767a2109bdc4b Mon Sep 17 00:00:00 2001 From: AirCoding Date: Wed, 10 Jun 2026 09:33:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(tui):=20=E4=BA=A4=E6=8D=A2=20Enter=20?= =?UTF-8?q?=E5=92=8C=20Ctrl+Enter=20=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enter → 提交文本(handleKeyDown 拦截 return 键) Ctrl+Enter → 换行(handleKeyDown 拦截 ctrl+return,插入 \n) Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/tui/src/TuiApp.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/tui/src/TuiApp.tsx b/packages/tui/src/TuiApp.tsx index dc10f01..26b4e13 100755 --- a/packages/tui/src/TuiApp.tsx +++ b/packages/tui/src/TuiApp.tsx @@ -355,6 +355,18 @@ function AirCodingView(props: { return } + // Ctrl+Enter inserts newline at cursor + if (event.ctrl && event.name === 'return') { + event.preventDefault() + if (textarea && !textarea.isDestroyed) { + const pos = textarea.cursorOffset + const current = textarea.plainText + textarea.setText(current.slice(0, pos) + '\n' + current.slice(pos)) + textarea.cursorOffset = pos + 1 + } + return + } + if (event.ctrl && event.name === 'c') { event.preventDefault() if (textarea && !textarea.isDestroyed && textarea.plainText.length > 0) {