Keyboard Shortcut Improvements for Claude Code

Status Closed — not planned
Maintainer reply ✓ Yes — sid374
Activity 10 comments · opened Feb 26, 2025 · closed Feb 12, 2026
💡 Likely answer: A maintainer (sid374, contributor) responded on this thread — see the highlighted reply below.

The current keyboard shortcut implementation in Claude Code has inconsistencies with the Claude web interface and lacks expected terminal behavior, causing workflow disruptions and potential data loss.

Current Behavior
  1. Only "Esc" can be used to exit the current mode
  2. Pressing Ctrl+C puts Claude Code sometimes in an unstable state requiring restart and resulting in cache loss
  3. Ctrl+Return is interpreted as "send to Claude" instead of creating a new line
Expected Behavior
  1. Ctrl+C should function as an alternative exit command (in addition to Esc)
  2. Ctrl+C should not cause an unstable application state
  3. Ctrl+Return should create a new line, consistent with the Claude web interface

Impact

  • Workflow disruption when muscle memory from web interface doesn't transfer
  • Risk of data loss when forced to restart after Ctrl+C puts application in unstable state
  • Reduced productivity due to inconsistent interface behaviors

Suggested Improvements

  1. Add Ctrl+C as an alternative exit command alongside Esc
  2. Fix application state handling when Ctrl+C is pressed
  3. Make Ctrl+Return create a new line instead of sending content to Claude

View original on GitHub ↗

10 Comments

roychri · 1 year ago

M-Enter (esc followed by enter) would be also accepted for a new line in multi line. (like aider)
CTRL-J could also be accepted for a new line multi line. (like charmbracelet's gum cli tool)

peterkaminski · 1 year ago

#138 and #143 are near dupes.

max-sixty · 1 year ago

One conflict: for those of us who use vim, hitting esc is often just "reset me back to normal mode, even if I don't remember which mode I'm in". It's always a very safe key to hit.

In claude this instead means "reset me back to normal mode if I'm in insert mode. _But if I'm in insert mode, cancel everything I'm doing_, even if I was finishing up a 10 minute operation"

Could we disable esc for "cancel" in vim mode?

sid374 contributor · 1 year ago

@max-sixty the esc issue is being tracked in https://github.com/anthropics/claude-code/issues/736 and should be fixed soon

soulfresh · 1 year ago

I'd like to weigh in that being able to customize the shortcuts might be a good way to resolve some of these issues. I'm running Claude inside an nvim terminal where I have <esc><esc> mapped to exiting terminal mode. I had to change the bindings I've been using for many years to allow me to use Claude correctly. It would be nice if I could instead remap the Claude keys.

alpertor · 10 months ago

✅ Completed

Implemented comprehensive Basement and Specialized Location Management system:

Features:

  • Basement registry with dashboard metrics (total basements, active, parking spots, storage units)
  • Basement CRUD with usage types: Parking, Storage, Mechanical, Service, DataCenter, Utilities, Mixed
  • Parking spot management with bulk create feature
  • Storage unit management with tenant assignment, climate control, and billing
  • Basement access rules with security levels, escort requirements, and validity periods
  • Status tracking: Active, UnderConstruction, Maintenance, Closed, Reserved

Files Created:

  • Models/Basement.cs (enums and model classes)
  • Services/BasementService.cs (~800 lines with IBasementService interface)
  • Pages/Admin/Basements/Index.cshtml/.cs (basement registry)
  • Pages/Admin/Basements/Parking.cshtml/.cs (parking spot management)
  • Pages/Admin/Basements/Storage.cshtml/.cs (storage unit management)
  • Pages/Admin/Basements/Access.cshtml/.cs (access rule management)

Tables Created (dynamic):

  • vpBasements
  • vpBasementParkingSpots
  • vpStorageUnits
  • vpBasementAccessRules

Build Status: ✅ 0 errors

github-actions[bot] · 9 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

omelta · 9 months ago

Completed in commit 8a945db2

github-actions[bot] · 8 months ago

This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.

github-actions[bot] · 7 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.