fix(tui): 交换 Enter 和 Ctrl+Enter 行为

Enter → 提交文本(handleKeyDown 拦截 return 键)
Ctrl+Enter → 换行(handleKeyDown 拦截 ctrl+return,插入 \n)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
AirCoding
2026-06-10 09:33:18 +08:00
parent 2a20a7652f
commit 23f8291249

View File

@@ -355,6 +355,18 @@ function AirCodingView(props: {
return 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') { if (event.ctrl && event.name === 'c') {
event.preventDefault() event.preventDefault()
if (textarea && !textarea.isDestroyed && textarea.plainText.length > 0) { if (textarea && !textarea.isDestroyed && textarea.plainText.length > 0) {