fix: 修复 Ctrl+Enter 在标准终端中应插入换行而非发送消息
- parse-keypress.ts: \n (LF) 字节标记为 ctrl=true,因为标准终端中 Ctrl+Enter 发送 \n,需与普通 Enter (\r) 区分 - defaultBindings.ts: 新增 ctrl+enter -> chat:newline 快捷键绑定, 支持 Kitty 键盘协议终端(如 Windows Terminal 1.25+) Co-Authored-By: Sonnet-4.6-CoStrict <noreply@anthropic.com>
This commit is contained in:
parent
321be8a128
commit
728af38c52
|
|
@ -697,12 +697,17 @@ function parseKeypress(s: string = ''): ParsedKey {
|
|||
return createNavKey(s, 'mouse', false)
|
||||
}
|
||||
|
||||
if (s === '\r' || s === '\r\n') {
|
||||
if (s === '\r\n') {
|
||||
key.raw = undefined
|
||||
key.name = 'return'
|
||||
key.ctrl = true
|
||||
} else if (s === '\r') {
|
||||
key.raw = undefined
|
||||
key.name = 'return'
|
||||
} else if (s === '\n') {
|
||||
key.raw = undefined
|
||||
key.name = 'return'
|
||||
key.ctrl = true
|
||||
} else if (s === '\t') {
|
||||
key.name = 'tab'
|
||||
} else if (s === '\b' || s === '\x1b\b') {
|
||||
|
|
|
|||
|
|
@ -71,6 +71,9 @@ export const DEFAULT_BINDINGS: KeybindingBlock[] = [
|
|||
'meta+o': 'chat:fastMode',
|
||||
'meta+t': 'chat:thinkingToggle',
|
||||
enter: 'chat:submit',
|
||||
// Ctrl+Enter inserts a newline (Kitty keyboard protocol terminals only;
|
||||
// standard terminals cannot distinguish ctrl+enter from plain enter).
|
||||
'ctrl+enter': 'chat:newline',
|
||||
up: 'history:previous',
|
||||
down: 'history:next',
|
||||
// Editing shortcuts (defined here, migration in progress)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user