Skip to content

Latest commit

 

History

History
128 lines (98 loc) · 8.43 KB

KEY_BINDINGS.md

File metadata and controls

128 lines (98 loc) · 8.43 KB

Key Bindings

This file lists all of the key bindings currently registered by prompts.

All prompts

These key bindings may be used with all prompts.

command description
enter Submit answer.
esc Cancel the prompt*.
ctrl + c Interrupt the prompt*.

* Canceling and interrupting a prompt have two different meanings. Canceling is defined specially for when the end user is allowed to skip a prompt, the library user can then use prompt_skippable which wraps the return type into an Option and catches the CanceledOperation error transforming it into a Ok(None) result. Interrupted operations are closer to "stop-the-world" operations, where the library user should treat them as termination commands.

Text Input

These key bindings may be used with all prompts that ask the user for text input: Text, Select, MultiSelect, Confirm, CustomType and Password. The Editor prompt is not included because it opens a separate text editor for text input.

command description
character Insert the character into the input.
left Move the cursor back one character.
right Move the cursor forward one character.
ctrl + left Move one word to the left of the cursor.
ctrl + right Move one word to the right of the cursor.
home Move cursor to the start of the line*.
end Move cursor to the end of the line*.
backspace Delete one character to the left of the cursor.
delete Delete the character at the cursor.
ctrl + delete Delete one word to the right of the cursor.

* Key bindings not supported on Select and MultiSelect prompts.

Text Prompts

These key bindings may be used in Text prompts.

command description
enter Submit the current current text input.
up When suggestions are displayed, move cursor one row up.
down When suggestions are displayed, move cursor one row down.
page up When suggestions are displayed, move cursor one page up.
page down When suggestions are displayed, move cursor one page down.
tab Replace current input with the resulting suggestion if any.
others See Text Input and All Prompts

Select Prompts

These key bindings may be used in Select prompts.

command description
enter Submit the current highlighted option.
up Move cursor one row up.
down Move cursor one row down.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
page up Move cursor one page up.
page down Move cursor one page down.
home Move cursor to the first option.
end Move cursor to the last option.
others See Text Input and All Prompts

MultiSelect Prompts

These key bindings may be used in MultiSelect prompts.

command description
enter Submit the options currently selected.
space Toggle the selection of the current highlighted option.
up Move cursor one row up.
down Move cursor one row down.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
page up Move cursor one page up.
page down Move cursor one page down.
home Move cursor to the first option.
end Move cursor to the last option.
left Unselect all options.
right Select all options.
others See Text Input and All Prompts

DateSelect Prompts

These key bindings may be used in the interactive calendar of the DateSelect prompt.

command description
space bar or enter Submit the current highlighted date.
up Move cursor one row up.
down Move cursor one row down.
left Move cursor one column to the left.
right Move cursor one column to the right.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
h Move cursor one column to the left when vim mode is enabled.
l Move cursor one column to the right when vim mode is enabled.
ctrl + up Move calendar back by one year.
ctrl + down Move calendar forward by one year.
ctrl + left Move calendar back by one month.
ctrl + right Move calendar forward by one month.

Editor Prompts

These key bindings may be used in Editor prompts.

command description
e Open the editor.
enter Submit the current content of the temporary file being edited.