qwen-code/docs/users/reference/keyboard-shortcuts.md
易良 c353fbbfa3
feat(cli): add Ctrl+Y shortcut to retry failed requests (#2011)
* feat: add Ctrl+Y shortcut to retry failed requests

- Add Ctrl+Y keyboard shortcut for retrying the last failed request
- Add isNetworkError() to detect transient network failures (ECONNREFUSED, ETIMEDOUT, etc.)
- Add DashScope 1305 error code to rate limit detection
- Add error hint \"Press Ctrl+Y to retry\" in error messages
- Support user-defined error codes for retry via config
- Add retryLastPrompt() hook in useGeminiStream
- Update keyboard shortcuts documentation

* feat: improve Ctrl+Y retry feature with tests, docs, and rate limit config

- Add comprehensive tests for Ctrl+Y retry shortcut in InputPrompt
- Add unit tests for retryLastPrompt in useGeminiStream hook
- Add detailed JSDoc comments for retryLastPrompt function and Ctrl+Y shortcut
- Extend isRateLimitError to support custom error codes via retryErrorCodes config
- Fix rate limit retry log variable reference (RATE_LIMIT_RETRY_OPTIONS → maxRateLimitRetries)
- Add Eclipse IDE files to .gitignore

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor(ui): consolidate retry countdown as inline hint in error messages

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* feat(cli): enhance error handling with improved retry mechanism

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

- Modify ErrorMessage component to remove dim color from hint text

- Update useGeminiStream hook to improve retry countdown behavior with option to preserve or clear hints

- Adjust tests to match new error handling implementation

* feat: add Ctrl+Y shortcut to retry the last failed request

When a request errors out, the error message shows an inline hint
"(Press Ctrl+Y to retry.)" in secondary color. Pressing Ctrl+Y
re-submits the same prompt, commits the error text to history
(without the hint), and clears the hint from the UI.

- Add retryLastPrompt action wired to Ctrl+Y via keyBindings and InputPrompt
- Track last submitted prompt and error state in useGeminiStream refs
- Show retry hint inline with error text in ErrorMessage component,
  wrapping naturally on narrow terminals while preserving hint color
- Expose retryLastPrompt through UIActionsContext
- Add keyboard shortcut entry in KeyboardShortcuts display
- Add i18n strings for hint and no-retry-available message
- Document Ctrl+Y in keyboard-shortcuts.md

* docs(configuration): Update model provider configuration document

* chore: remove YOLO mode code from core

* fix: prevent Ctrl+Y hint from overriding auto-retry countdown

When an auto-retry countdown is active (retryCountdownTimerRef is set),
handleErrorEvent should not overwrite it with the Ctrl+Y hint. The auto-retry
hint ("retrying in Xs...") and manual retry hint ("Press Ctrl+Y to retry.")
are mutually exclusive:

- Auto-retry errors (e.g., rate limits): show countdown hint
- Other errors: show Ctrl+Y hint

Also removed retryErrorCodes from ContentGeneratorConfig as it's not part
of the minimal Ctrl+Y feature scope.

* simplify: remove complex options from clearRetryCountdown

Revert clearRetryCountdown to simplest form without options parameter.
The function now just clears the timer and pending item without any
automatic history commit logic.

* fix: restore pendingRetryCountdownItem as separate state from pendingRetryErrorItem

Auto-retry countdown and manual retry hint are now independent:
- pendingRetryErrorItem: displays error message with optional hint
- pendingRetryCountdownItem: displays separate countdown line for auto-retry

This ensures both can be shown simultaneously without overriding each other.

* fix: restore RetryCountdownMessage rendering in HistoryItemDisplay

The retry_countdown type should be rendered as a separate message,
not inline in ErrorMessage. This allows auto-retry countdown and
manual retry hint to coexist properly.

* fix(cli): properly commit retry error item to history before clearing

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* fix(cli): remove trailing period from retry hint translations

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

Remove unnecessary period from 'Press Ctrl+Y to retry' translation strings in both en.js and zh.js locales. Also update the corresponding usage in useGeminiStream hook.

* chore(sdk-java): add Eclipse project configuration files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

Add .project configuration files for client and qwencode modules to support Eclipse IDE development environment.

* feat(cli): add retry countdown hint to error message

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Revert "chore(sdk-java): add Eclipse project configuration files"

This reverts commit da83b5e571.

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-02 17:59:18 +08:00

8.4 KiB

Qwen Code Keyboard Shortcuts

This document lists the available keyboard shortcuts in Qwen Code.

General

Shortcut Description
Esc Close dialogs and suggestions.
Ctrl+C Cancel the ongoing request and clear the input. Press twice to exit the application.
Ctrl+D Exit the application if the input is empty. Press twice to confirm.
Ctrl+L Clear the screen.
Ctrl+O Toggle the display of the debug console.
Ctrl+S Allows long responses to print fully, disabling truncation. Use your terminal's scrollback to view the entire output.
Ctrl+T Toggle the display of tool descriptions.
Shift+Tab (Tab on Windows) Cycle approval modes (plandefaultauto-edityolo)

Input Prompt

Shortcut Description
! Toggle shell mode when the input is empty.
? Toggle keyboard shortcuts display when the input is empty.
\ (at end of line) + Enter Insert a newline.
Down Arrow Navigate down through the input history.
Enter Submit the current prompt.
Meta+Delete / Ctrl+Delete Delete the word to the right of the cursor.
Tab Autocomplete the current suggestion if one exists.
Up Arrow Navigate up through the input history.
Ctrl+A / Home Move the cursor to the beginning of the line.
Ctrl+B / Left Arrow Move the cursor one character to the left.
Ctrl+C Clear the input prompt
Esc (double press) Clear the input prompt.
Ctrl+D / Delete Delete the character to the right of the cursor.
Ctrl+E / End Move the cursor to the end of the line.
Ctrl+F / Right Arrow Move the cursor one character to the right.
Ctrl+H / Backspace Delete the character to the left of the cursor.
Ctrl+K Delete from the cursor to the end of the line.
Ctrl+Left Arrow / Meta+Left Arrow / Meta+B Move the cursor one word to the left.
Ctrl+N Navigate down through the input history.
Ctrl+P Navigate up through the input history.
Ctrl+R Reverse search through input/shell history.
Ctrl+Y Retry the last failed request.
Ctrl+Right Arrow / Meta+Right Arrow / Meta+F Move the cursor one word to the right.
Ctrl+U Delete from the cursor to the beginning of the line.
Ctrl+V (Windows: Alt+V) Paste clipboard content. If the clipboard contains an image, it will be saved and a reference to it will be inserted in the prompt.
Ctrl+W / Meta+Backspace / Ctrl+Backspace Delete the word to the left of the cursor.
Ctrl+X / Meta+Enter Open the current input in an external editor.

Suggestions

Shortcut Description
Down Arrow Navigate down through the suggestions.
Tab / Enter Accept the selected suggestion.
Up Arrow Navigate up through the suggestions.

Radio Button Select

Shortcut Description
Down Arrow / j Move selection down.
Enter Confirm selection.
Up Arrow / k Move selection up.
1-9 Select an item by its number.
(multi-digit) For items with numbers greater than 9, press the digits in quick succession to select the corresponding item.

IDE Integration

Shortcut Description
Ctrl+G See context CLI received from IDE