mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 14:10:37 -07:00
feat(input): add undo/redo shortcuts with Ctrl+Z and Ctrl+R (#4625)
Co-authored-by: Jacob Richman <jacob314@gmail.com> Co-authored-by: matt korwel <matt.korwel@gmail.com>
This commit is contained in:
@@ -380,6 +380,16 @@ That's it! You can now run your command in the CLI. First, you might add a file
|
||||
|
||||
Gemini CLI will then execute the multi-line prompt defined in your TOML file.
|
||||
|
||||
## Input Prompt Shortcuts
|
||||
|
||||
These shortcuts apply directly to the input prompt for text manipulation.
|
||||
|
||||
- **Undo:**
|
||||
- **Keyboard shortcut:** Press **Ctrl+z** to undo the last action in the input prompt.
|
||||
|
||||
- **Redo:**
|
||||
- **Keyboard shortcut:** Press **Ctrl+Shift+Z** to redo the last undone action in the input prompt.
|
||||
|
||||
## At commands (`@`)
|
||||
|
||||
At commands are used to include the content of files or directories as part of your prompt to Gemini. These commands include git-aware filtering.
|
||||
|
||||
@@ -127,13 +127,13 @@ describe('InputPrompt', () => {
|
||||
killLineLeft: vi.fn(),
|
||||
openInExternalEditor: vi.fn(),
|
||||
newline: vi.fn(),
|
||||
undo: vi.fn(),
|
||||
redo: vi.fn(),
|
||||
backspace: vi.fn(),
|
||||
preferredCol: null,
|
||||
selectionAnchor: null,
|
||||
insert: vi.fn(),
|
||||
del: vi.fn(),
|
||||
undo: vi.fn(),
|
||||
redo: vi.fn(),
|
||||
replaceRange: vi.fn(),
|
||||
deleteWordLeft: vi.fn(),
|
||||
deleteWordRight: vi.fn(),
|
||||
|
||||
@@ -1924,11 +1924,23 @@ export function useTextBuffer({
|
||||
)
|
||||
backspace();
|
||||
else if (key.name === 'delete' || (key.ctrl && key.name === 'd')) del();
|
||||
else if (key.ctrl && !key.shift && key.name === 'z') undo();
|
||||
else if (key.ctrl && key.shift && key.name === 'z') redo();
|
||||
else if (input && !key.ctrl && !key.meta) {
|
||||
insert(input, { paste: key.paste });
|
||||
}
|
||||
},
|
||||
[newline, move, deleteWordLeft, deleteWordRight, backspace, del, insert],
|
||||
[
|
||||
newline,
|
||||
move,
|
||||
deleteWordLeft,
|
||||
deleteWordRight,
|
||||
backspace,
|
||||
del,
|
||||
insert,
|
||||
undo,
|
||||
redo,
|
||||
],
|
||||
);
|
||||
|
||||
const renderedVisualLines = useMemo(
|
||||
|
||||
Reference in New Issue
Block a user