ctrl+L default binding destroys typed input (chat:clearInput) — breaks terminal muscle memory

Status Open
Reported on v2.1.218
Maintainer reply None cached
Activity 0 comments · opened Jul 24, 2026

What

In the Chat context, ctrl+l is bound by default to chat:clearInput, which erases the current input buffer.

Why it's a problem

Every terminal binds ctrl+L to "clear screen" — a non-destructive redraw that leaves the text already typed at the prompt intact. Anyone with that muscle memory hits ctrl+L in Claude Code expecting a screen clear and instead loses whatever they'd typed. Unlike a real terminal — where both scrollback and the current command line survive — the wiped input here is unrecoverable.

Request

  1. Change the default so ctrl+l is non-destructive. There's already an app:redraw action (a plain repaint) that has no key bound — mapping ctrl+l to it by default would match terminal convention exactly.
  2. Surface the rebind escape hatch more prominently in the docs. It's easy to miss that ~/.claude/keybindings.json can already remap this.

Workaround

Rebind ctrl+l to the non-destructive redraw in ~/.claude/keybindings.json:

{
  "bindings": [
    { "context": "Chat", "bindings": { "ctrl+l": "app:redraw" } }
  ]
}

Environment

  • Claude Code 2.1.218
  • macOS 26.5.2

🤖 Generated with Claude Code

View original on GitHub ↗