<type>documentation</type>
<domain>commands</domain>
<id>index</id>
<title>VI/VIM Personality</title>
<product>per+</product>

This section documents all the default key bindings for the ``VI/VIM`` keyboard
personality, set by the `User Interface > Keyboard > Personality`__ preference.

__ script:show_preferences_gui#prefname="edit.personality"


**0**: **beginning-of-line(toggle=0)** - Action varies according to focus:  *Focused Editor Commands*: Move to beginning of current line. When toggle is True, moves to the
end of the leading white space if already at the beginning of the line
(and vice versa).; *Toolbar Search Commands*: Move to the beginning of the toolbar search entry

**0**: **beginning-of-line(toggle=0)** - Action varies according to focus:  *Focused Editor Commands*: Move to beginning of current line. When toggle is True, moves to the
end of the leading white space if already at the beginning of the line
(and vice versa).; *Toolbar Search Commands*: Move to the beginning of the toolbar search entry

**1**: **initiate-numeric-modifier(digit=1)** - VI style repeat/numeric modifier for following command

**1**: **initiate-numeric-modifier(digit=1)** - VI style repeat/numeric modifier for following command

**2**: **initiate-numeric-modifier(digit=2)** - VI style repeat/numeric modifier for following command

**2**: **initiate-numeric-modifier(digit=2)** - VI style repeat/numeric modifier for following command

**3**: **initiate-numeric-modifier(digit=3)** - VI style repeat/numeric modifier for following command

**3**: **initiate-numeric-modifier(digit=3)** - VI style repeat/numeric modifier for following command

**4**: **initiate-numeric-modifier(digit=4)** - VI style repeat/numeric modifier for following command

**4**: **initiate-numeric-modifier(digit=4)** - VI style repeat/numeric modifier for following command

**5**: **initiate-numeric-modifier(digit=5)** - VI style repeat/numeric modifier for following command

**5**: **initiate-numeric-modifier(digit=5)** - VI style repeat/numeric modifier for following command

**6**: **initiate-numeric-modifier(digit=6)** - VI style repeat/numeric modifier for following command

**6**: **initiate-numeric-modifier(digit=6)** - VI style repeat/numeric modifier for following command

**7**: **initiate-numeric-modifier(digit=7)** - VI style repeat/numeric modifier for following command

**7**: **initiate-numeric-modifier(digit=7)** - VI style repeat/numeric modifier for following command

**8**: **initiate-numeric-modifier(digit=8)** - VI style repeat/numeric modifier for following command

**8**: **initiate-numeric-modifier(digit=8)** - VI style repeat/numeric modifier for following command

**9**: **initiate-numeric-modifier(digit=9)** - VI style repeat/numeric modifier for following command

**9**: **initiate-numeric-modifier(digit=9)** - VI style repeat/numeric modifier for following command

**A**: **enter-insert-mode(pos="after")** - Enter editor insert mode

**A**: **select-inner(extend=True)** - Select a text object based on the following key press

**Alt-1**: **fold-python-methods** - Fold up all Python methods, expand all classes, and leave other fold
points alone

**Alt-2**: **fold-python-classes** - Fold up all Python classes but leave other fold points alone

**Alt-3**: **fold-python-classes-and-defs** - Fold up all Python classes, methods, and functions but leave other fold
points alone

**Alt-Backspace**: **backward-delete-word** - Action varies according to focus:  *Focused Editor Commands*: Delete one word behind of the cursor ; *Toolbar Search Commands*: Delete word behind the cursor

**Alt-Delete**: **backward-delete-word** - Action varies according to focus:  *Focused Editor Commands*: Delete one word behind of the cursor ; *Toolbar Search Commands*: Delete word behind the cursor

**Alt-Down**: **fold-expand-more-current** - Expand the current fold point one more level 

**Alt-End**: **fold-expand-all** - Expand all fold points in the current file 

**Alt-F11**: **prev-points-of-use-match** - Display the previous match in the active points of use tool 

**Alt-F12**: **next-points-of-use-match** - Display the next match in the active points of use tool 

**Alt-F3**: **search** - Bring up the search manager in search mode. 

**Alt-F4**: **close-window** - Close the current window and all documents and panels in it

**Alt-F5**: **run-to-cursor** - Run to current cursor position

**Alt-F6**: **run-failed-tests** - Re-run all the previously failed tests.  The tests are debugged when
debug is True.

**Alt-F7**: **run-last-tests** - Run again the last group of tests that were run.  The tests are
debugged when debug is True.

**Alt-Home**: **fold-collapse-all** - Collapse all fold points in the current file 

**Alt-Left**: **visit-history-previous** - Move back in history to previous visited editor position

**Alt-Left-button-click**: **find-points-of-use-clicked** - Find points of use for last symbol clicked. 

**Alt-Page_down**: **fold-expand-all-current** - Expand the current fold point completely 

**Alt-Page_up**: **fold-collapse-all-current** - Collapse the current fold point completely 

**Alt-Return**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Alt-Right**: **visit-history-next** - Move forward in history to next visited editor position

**Alt-Shift-A**: **diff-merge-a-b** - Merge the current change from file A to file B

**Alt-Shift-B**: **diff-merge-b-a** - Merge the current change from file B to file A

**Alt-Shift-Down**: **next-line-extend-rect** - Move to next screen line, adjusting the rectangular selection range to new
position, optionally repositioning character within line: same' to leave
in same horizontal position, 'start' at start, 'end' at end, or 'fnb' for
first non-blank char.

**Alt-Shift-F4**: **find-points-of-use(search_project_files=False)** - Find points of use for a symbol.  The symbol defaults to the active
selection.  Finds points of use in the file the symbol is located and in
project files by default. 

**Alt-Shift-F5**: **debug-continue-all** - Continue all paused debug processes

**Alt-Shift-Left**: **backward-char-extend-rect** - Move cursor backward one character, adjusting the rectangular selection 
range to new position 

**Alt-Shift-N**: **diff-next** - Move to next difference in current diff/merge session

**Alt-Shift-P**: **diff-previous** - Move to previous difference in current diff/merge session

**Alt-Shift-Right**: **forward-char-extend-rect** - Move cursor forward one character, adjusting the rectangular selection 
range to new position 

**Alt-Shift-Up**: **previous-line-extend-rect** - Move to previous screen line, adjusting the rectangular selection range to new
position, optionally repositioning character within line: same' to leave
in same horizontal position, 'start' at start, 'end' at end, or 'fnb' for
first non-blank char.

**Alt-Slash**: **fold-toggle** - Toggle the current fold point 

**Alt-Tab**: **ai-suggest-next** - Move to the next suggested completion in AI suggestion mode.  Starts
AI suggestion mode if not already running.

This command requires first configuring an AI provider as described in the
AI Assisted Development chapter of the product manual.

**Alt-Up**: **fold-collapse-more-current** - Collapse the current fold point one more level 

**Ampersand**: **repeat-replace** - Repeat the last query replace or range replace operation on the current line.
The first match is replaced without confirmation.

**Apostrophe**: **vi-goto-bookmark** - Goto bookmark using single character name defined by
the next pressed key

**Asciicircum**: **beginning-of-line-text(toggle=0)** - Move to end of the leading white space, if any, on the current line.
If toggle is True, moves to the beginning of the line if already at the
end of the leading white space (and vice versa).

**Asciicircum**: **beginning-of-line-text(toggle=0)** - Move to end of the leading white space, if any, on the current line.
If toggle is True, moves to the beginning of the line if already at the
end of the leading white space (and vice versa).

**Asciitilde**: **case-swap** - Change case of the current selection, or character ahead of the cursor if
there is no selection, so each letter is the opposite of its current case

**Asterisk**: **isearch-sel-forward(persist=0, whole_word=1)** - Action varies according to focus:  *Document Viewer Commands*: Initiate incremental mini-search forward from the cursor position,
using current selection as the search string.  Set persist=False to 
do the search but end the interactive search session immediately.; *Focused Editor Commands*: Initiate incremental mini-search forward from the cursor position,
using current selection as the search string.  Set persist=False to
do the search but end the interactive search session immediately.

**At**: **execute-kbd-macro(register=None)** - Execute most recently recorded keyboard macro.  If register is None then the
user is asked to enter a letter a-z for the register where the macro is filed.
Otherwise, register 'a' is used by default.

**B**: **backward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**Back-button-click**: **visit-history-previous** - Move back in history to previous visited editor position

**Backspace**: **backward-char** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Backspace**: **backward-delete-char** - Action varies according to focus:  *Focused Editor Commands*: Delete one character behind the cursor, or the current selection
if not empty. ; *Toolbar Search Commands*: Delete character behind the cursor

**Bar**: **goto-column** - Move cursor to given column

**Braceleft**: **backward-paragraph** - Move cursor backward one paragraph (to next all-whitespace line).

**Braceright**: **forward-paragraph** - Move cursor forward one paragraph (to next all-whitespace line).

**Bracketleft P**: **paste-register(pos=-1, indent=1)** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**Bracketright P**: **paste-register(indent=1)** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**C**: **delete-next-move-insert** - Delete the text covered by the next cursor move command and then
enter insert mode (when working in a modal editor key binding)

**C**: **enter-insert-mode(pos="delete-sel")** - Enter editor insert mode

**Colon**: **vi-command-by-name** - Execute a VI command by name.  This implements ":" commands for the
VI/Vim keyboard personality.  The following subset of VI/Vim : commands
are supported::

  r[!], e[dit], e!, e#, ene[w], w[rite], up[date], wa[ll], q[uit], q[!], qall, wq,
  x[it], xall, wqall, sp[lit], vs[plit], new, on[ly], buffers, files, !, s[ubstitute],
  d, delm, reg, marks, n[ext], N, p[revious], rew[ind], last, m[ove], co[py], cl[ose]
  (an approximation), and set.
  
The supported directives for 'set' are:: 

  ic, ignorecase, noic, noignorecase, ai, autoindent, noai, noautoindent, nu, number,
  nonu, nonumber, ro, readonly, noro, noreadonly, sm, showmatch, nosm, and noshowmatch.
    

**Colon**: **vi-command-by-name** - Execute a VI command by name.  This implements ":" commands for the
VI/Vim keyboard personality.  The following subset of VI/Vim : commands
are supported::

  r[!], e[dit], e!, e#, ene[w], w[rite], up[date], wa[ll], q[uit], q[!], qall, wq,
  x[it], xall, wqall, sp[lit], vs[plit], new, on[ly], buffers, files, !, s[ubstitute],
  d, delm, reg, marks, n[ext], N, p[revious], rew[ind], last, m[ove], co[py], cl[ose]
  (an approximation), and set.
  
The supported directives for 'set' are:: 

  ic, ignorecase, noic, noignorecase, ai, autoindent, noai, noautoindent, nu, number,
  nonu, nonumber, ro, readonly, noro, noreadonly, sm, showmatch, nosm, and noshowmatch.
    

**Comma**: **repeat-search-char(opposite=1)** - Repeat the last search_char operation, optionally in the opposite
direction.

**Ctrl-1**: **activate-file-option-menu** - Activate the file menu for the editor. 

**Ctrl-2**: **activate-symbol-option-menu-1** - Activate the 1st symbol menu for the editor. 

**Ctrl-3**: **activate-symbol-option-menu-2** - Activate the 2nd symbol menu for the editor. 

**Ctrl-4**: **activate-symbol-option-menu-3** - Activate the 3rd symbol menu for the editor. 

**Ctrl-5**: **activate-symbol-option-menu-4** - Activate the 4th symbol menu for the editor. 

**Ctrl-6**: **activate-symbol-option-menu-5** - Activate the 5th symbol menu for the editor. 

**Ctrl-Alt-Down**: **goto-next-bookmark(current_file_only=True)** - Go to the next bookmark, or the first one if no bookmark is selected. Stays within
the file in the current editor when current_file_only is True. Only bookmarks in the
current bookmark category are visited unless a category is passed.

**Ctrl-Alt-F5**: **debug-kill-all** - Terminate all debug processes

**Ctrl-Alt-F6**: **debug-failed-tests** - Re-run all the previously failed tests in the debugger.

**Ctrl-Alt-F7**: **debug-last-tests** - Debug the last group of tests that were run. 

**Ctrl-Alt-Left**: **goto-previous-bookmark** - Go to the previous bookmark in the bookmark list, or the last one if no bookmark is
selected. Stays within the file in the current editor when current_file_only is True.
Only bookmarks in the current bookmark category are visited unless a category is
passed.

**Ctrl-Alt-Right**: **goto-next-bookmark** - Go to the next bookmark, or the first one if no bookmark is selected. Stays within
the file in the current editor when current_file_only is True. Only bookmarks in the
current bookmark category are visited unless a category is passed.

**Ctrl-Alt-Shift-F5**: **debug-stop-all** - Pause all free-running debug processes at the current program counter

**Ctrl-Alt-Up**: **goto-previous-bookmark(current_file_only=True)** - Go to the previous bookmark in the bookmark list, or the last one if no bookmark is
selected. Stays within the file in the current editor when current_file_only is True.
Only bookmarks in the current bookmark category are visited unless a category is
passed.

**Ctrl-Apostrophe**: **enclose(start="\'", end="\'")** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-Asciicircum**: **nth-document** - Move to the nth document open in the current window. If alphabetical
is true, the list of documents will be alphabetized. If all_splits is true,
documents from all splits will be in list; otherwise, only the current
split will be.

**Ctrl-B**: **backward-page** - Move cursor backward one page 

**Ctrl-Backspace**: **backward-delete-word** - Action varies according to focus:  *Focused Editor Commands*: Delete one word behind of the cursor ; *Toolbar Search Commands*: Delete word behind the cursor

**Ctrl-Braceleft**: **enclose(start="{", end="}")** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-Bracketleft**: **enclose(start="[", end="]")** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-Bracketleft**: **enter-browse-mode** - Enter editor browse mode

**Ctrl-Bracketleft**: **enter-browse-mode** - Enter editor browse mode

**Ctrl-Bracketleft**: **exit-visual-mode** - Exit visual mode and return back to default mode

**Ctrl-C**: **enter-browse-mode** - Enter editor browse mode

**Ctrl-C**: **vi-ctrl-c**

**Ctrl-C**: **vi-ctrl-c**

**Ctrl-D**: **outdent-region** - Outdent the selected region one level of indentation.  Set sel to None
to use preference to determine selection behavior, or "never-select" to
unselect after indent, "always-select" to always select after indent, or
"retain-select" to retain current selection after indent.

**Ctrl-D**: **outdent-region** - Outdent the selected region one level of indentation.  Set sel to None
to use preference to determine selection behavior, or "never-select" to
unselect after indent, "always-select" to always select after indent, or
"retain-select" to retain current selection after indent.

**Ctrl-D**: **scroll-text-down(repeat=0.5)** - Scroll text down a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**Ctrl-Delete**: **forward-delete-word** - Action varies according to focus:  *Focused Editor Commands*: Delete one word in front of the cursor ; *Toolbar Search Commands*: Delete word in front of the cursor

**Ctrl-Down**: **select-less** - Select less code; undoes the last select-more command 

**Ctrl-E**: **scroll-text-down(move_cursor=False)** - Scroll text down a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**Ctrl-End**: **end-of-document** - Move cursor to end of document 

**Ctrl-Equal**: **zoom-in** - Action varies according to focus:  *Current Editor Commands*: Zoom in, increasing the text display size temporarily by one font size ; *Document Viewer Commands*: Increase documentation font size

**Ctrl-Exclam**: **ai-refactor**

**Ctrl-F**: **forward-page** - Move cursor forward one page 

**Ctrl-F12**: **command-by-name** - Execute given command by name, collecting any args as needed 

**Ctrl-F3**: **search-sel-forward** - Search forward using current selection 

**Ctrl-F4**: **close** - Action varies according to focus:  *Application Control Commands*: Close active document.  Abandon any changes when ignore_changes is
True.  Close empty windows when close_window is true and quit if all
document windows closed when can_quit is true.; *Open Files Tool Commands*: Close the currently selected items in the Open Files tool

**Ctrl-F5**: **debug-kill** - Terminate current debug session (press Alt to terminate all debug processes)

**Ctrl-F6**: **step-over** - Step over current instruction

**Ctrl-F8**: **start-select-line** - Turn on auto-select mode line by line

**Ctrl-F9**: **break-clear-all** - Clear all breakpoints

**Ctrl-H**: **backward-char** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Ctrl-H**: **backward-char** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Ctrl-H**: **backward-char** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Ctrl-H**: **backward-delete-char** - Action varies according to focus:  *Focused Editor Commands*: Delete one character behind the cursor, or the current selection
if not empty. ; *Toolbar Search Commands*: Delete character behind the cursor

**Ctrl-Home**: **start-of-document** - Move cursor to start of document 

**Ctrl-I**: **visit-history-next** - Move forward in history to next visited editor position

**Ctrl-Insert**: **copy** - Action varies according to focus:  *Document Viewer Commands*: Copy any selected text. ; *Exceptions Tool Commands*: Copy the exception traceback to the clipboard ; *Focused Editor Commands*: Copy selected text ; *Search Tool Commands*: Copy selected text ; *Toolbar Search Commands*: Cut selection 

**Ctrl-Iso_left_tab**: **begin-visited-document-cycle(move_back=False)** - Start moving between documents in the order they were visited.  Starts
modal key interaction that ends when a key other than tab is seen or ctrl
is released. 

**Ctrl-J**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Ctrl-J**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Ctrl-J**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**Ctrl-Left**: **backward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**Ctrl-Left-button-click**: **goto-clicked-symbol-defn** - Goto the definition of the source symbol that was last clicked on. If
other_split is true, the definition will be displayed if a split other
than the current split; if other_split is false, it will be displayed in
the current editor; if other_split is not specified or None, the split to
be used is determined by the Split Reuse Policy preference value.

**Ctrl-Less**: **enclose(start="<", end=">")** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-M**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Ctrl-M**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Ctrl-M**: **next-line-in-file(cursor="fnb")** - Move to next line in file, repositioning character within line:
'start' at start, 'end' at end, or 'fnb' for first non-blank char.

**Ctrl-Minus**: **zoom-out** - Action varies according to focus:  *Current Editor Commands*: Zoom out, increasing the text display size temporarily by one font size ; *Document Viewer Commands*: Decrease documentation font size

**Ctrl-N**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**Ctrl-N**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**Ctrl-Next**: **forward-page-extend** - Move cursor forward one page, adjusting the selection 
range to new position 

**Ctrl-O**: **enter-browse-mode(provisional=True)** - Enter editor browse mode

**Ctrl-O**: **visit-history-previous** - Move back in history to previous visited editor position

**Ctrl-P**: **previous-line** - Move to previous screen line, optionally repositioning character
within line: same' to leave in same horizontal position, 'start' at start,
'end' at end, or 'fnb' for first non-blank char.

**Ctrl-P**: **previous-line** - Move to previous screen line, optionally repositioning character
within line: same' to leave in same horizontal position, 'start' at start,
'end' at end, or 'fnb' for first non-blank char.

**Ctrl-Page_down**: **next-document** - Move to the next document open in the current window. If alphabetical
is true, the list traversed will be alphabetized. If all_splits is true,
documents from all splits will be traversed; otherwise, only the current
split will be.

**Ctrl-Page_up**: **previous-document** - Move to the previous document open in the current window. If alphabetical
is true, the list traversed will be alphabetized. If all_splits is true,
documents from all splits will be traversed; otherwise, only the current
split will be.

**Ctrl-Parenleft**: **enclose(start="(", end=")")** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-Plus**: **zoom-in** - Action varies according to focus:  *Current Editor Commands*: Zoom in, increasing the text display size temporarily by one font size ; *Document Viewer Commands*: Increase documentation font size

**Ctrl-Pointer_button1**: **goto-clicked-symbol-defn** - Goto the definition of the source symbol that was last clicked on. If
other_split is true, the definition will be displayed if a split other
than the current split; if other_split is false, it will be displayed in
the current editor; if other_split is not specified or None, the split to
be used is determined by the Split Reuse Policy preference value.

**Ctrl-Prior**: **backward-page-extend** - Move cursor backward one page, adjusting the selection 
range to new position 

**Ctrl-Q**: **start-select-rectangle** - Turn on auto-select rectangle mode

**Ctrl-Q**: **start-select-rectangle** - Turn on auto-select rectangle mode

**Ctrl-Question**: **ai-suggest-next** - Move to the next suggested completion in AI suggestion mode.  Starts
AI suggestion mode if not already running.

This command requires first configuring an AI provider as described in the
AI Assisted Development chapter of the product manual.

**Ctrl-Quotedbl**: **enclose(start='\"', end='\"')** - Enclose the selection or the rest of the current line when there is no
selection with the given start and end strings.  The caret is moved to the
end of the enclosed text.

**Ctrl-Quoteleft**: **begin-visited-document-cycle(move_back=True, back_key="Ctrl-Quoteleft", forward_key="Ctrl-AsciiTilde")** - Start moving between documents in the order they were visited.  Starts
modal key interaction that ends when a key other than tab is seen or ctrl
is released. 

**Ctrl-R**: **redo** - Redo last action 

**Ctrl-Return**: **new-line-after** - Place a new line after the current line 

**Ctrl-Right**: **forward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**Ctrl-S**: **save** - Save active document.  Also close it if close is True.

**Ctrl-Shift-Delete**: **delete-lines**

**Ctrl-Shift-Down**: **scroll-text-down** - Scroll text down a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**Ctrl-Shift-End**: **end-of-document-extend** - Move cursor to end of document, adjusting the selection 
range to new position 

**Ctrl-Shift-F**: **batch-search** - Search on current selection using the Search in Files tool. The look_in argument gets
entered in the look in field if not None or ''. The current selection is put into the search
field if it doesn't span multiple lines and either use_selection is true or there's nothing in
the search field. The given search text is used instead, if provided

**Ctrl-Shift-F3**: **search-sel-backward** - Search backward using current selection 

**Ctrl-Shift-F5**: **debug-stop** - Pause debug at current program counter (press Alt to pause all debug processes)

**Ctrl-Shift-F6**: **debug-all-tests** - Debug all the tests in testing panel. 

**Ctrl-Shift-F7**: **debug-current-tests** - Runs the current test or tests, if possible.  The current tests are
determined by the current position in the active view. 

**Ctrl-Shift-F8**: **start-select-rectangle** - Turn on auto-select rectangle mode

**Ctrl-Shift-F9**: Multiple commands; first available is executed:

  * **break-disable-all** - Disable all breakpoints

  * **break-enable-all** - Enable all breakpoints


**Ctrl-Shift-G**: **batch-replace** - Display search and replace in files tool. 

**Ctrl-Shift-Home**: **start-of-document-extend** - Move cursor to start of document, adjusting the selection 
range to new position 

**Ctrl-Shift-I**: **add-current-file-to-project** - Add the frontmost currently open file to project 

**Ctrl-Shift-Left**: **backward-word-extend** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word, adjusting the selection range to new
position. Optionally, provide a string that contains the delimiters to
define which characters are part of a word. Gravity may be "start" or
"end" to indicate whether cursor is placed at start or end of the word.; *Toolbar Search Commands*: Move backward one word, extending the selection

**Ctrl-Shift-O**: **open-from-project** - Open document from the project via the Open From Project dialog.
The given fragment is used as the initial fragment filter and if it
is None, the selected text or the symbol under the cursor is used.
If skip_if_unique is true, the file is opened without the dialog being
displayed if only one filename matches the fragment. 

**Ctrl-Shift-P**: **find-symbol-in-project** - Allow user to visit point of definition of a source symbol in the 
any file in the project by typing a fragment of the name

**Ctrl-Shift-Page_down**: **forward-page-extend** - Move cursor forward one page, adjusting the selection 
range to new position 

**Ctrl-Shift-Page_up**: **backward-page-extend** - Move cursor backward one page, adjusting the selection 
range to new position 

**Ctrl-Shift-Right**: **forward-word-extend** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word, adjusting the selection range to new
position. Optionally, provide a string that contains the delimiters to
define which characters are part of a word. Gravity may be "start" or
"end" to indicate whether cursor is placed at start or end of the word.; *Toolbar Search Commands*: Move forward one word, extending the selection

**Ctrl-Shift-T**: **find-symbol** - Allow user to visit point of definition of a source symbol in the 
current editor context by typing a fragment of the name

**Ctrl-Shift-Tab**: **begin-visited-document-cycle(move_back=False)** - Start moving between documents in the order they were visited.  Starts
modal key interaction that ends when a key other than tab is seen or ctrl
is released. 

**Ctrl-Shift-Up**: **scroll-text-up** - Scroll text up a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**Ctrl-T**: **forward-tab** - Action varies according to focus:  *Focused Editor Commands*: Place a tab character at the current cursor position ; *Search Tool Commands*: Place a forward tab at the current cursor position in search or replace
string

**Ctrl-T**: **indent-region** - Indent the selected region one level of indentation.  Set sel to None
to use preference to determine selection behavior, or "never-select" to
unselect after indent, "always-select" to always select after indent, or
"retain-select" to retain current selection after indent.

**Ctrl-T**: **indent-region** - Indent the selected region one level of indentation.  Set sel to None
to use preference to determine selection behavior, or "never-select" to
unselect after indent, "always-select" to always select after indent, or
"retain-select" to retain current selection after indent.

**Ctrl-Tab**: **begin-visited-document-cycle(move_back=True)** - Start moving between documents in the order they were visited.  Starts
modal key interaction that ends when a key other than tab is seen or ctrl
is released. 

**Ctrl-U**: **delete-to-start-of-line** - Delete everything between the cursor and start of line

**Ctrl-U**: **delete-to-start-of-line** - Delete everything between the cursor and start of line

**Ctrl-U**: **scroll-text-up(repeat=0.5)** - Scroll text up a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**Ctrl-Underscore**: **zoom-reset** - Action varies according to focus:  *Current Editor Commands*: Reset font zoom factor back to zero; *Document Viewer Commands*: Reset documentation font size to default

**Ctrl-Up**: **select-more** - Select more code on either the current line or larger multi-line
blocks. 

**Ctrl-V**: **enter-browse-mode** - Enter editor browse mode

**Ctrl-V**: **vi-ctrl-v**

**Ctrl-V**: **vi-ctrl-v**

**Ctrl-W**: **backward-delete-word** - Action varies according to focus:  *Focused Editor Commands*: Delete one word behind of the cursor ; *Toolbar Search Commands*: Delete word behind the cursor

**Ctrl-W**: **backward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**Ctrl-W B**: **move-editor-focus-last** - Move focus to last editor split

**Ctrl-W C**: **unsplit(action="recent-or-close")** - Unsplit all editors so there's only one.  Action specifies how to
choose the remaining displayed editor.  One of::

  current -- Show current editor
  close   -- Close current editor before unsplitting
  recent  -- Change to recent buffer before unsplitting
  recent-or-close -- Change to recent buffer before closing
  split, or close the current buffer if there is only
  one split left.

**Ctrl-W Ctrl-Asciicircum**: **vi-split-edit-alternate**

**Ctrl-W Ctrl-W**: **move-editor-focus** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-W Down**: **move-editor-focus(wrap=False)** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-W J**: **move-editor-focus(wrap=False)** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-W K**: **move-editor-focus(dir=-1, wrap=False)** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-W Minus**: **shrink-split-vertically** - Decrease height of this split

**Ctrl-W N**: **split-vertically(new=1)** - Split current view vertically.  Create new editor in new view when new==1.

**Ctrl-W O**: **unsplit** - Unsplit all editors so there's only one.  Action specifies how to
choose the remaining displayed editor.  One of::

  current -- Show current editor
  close   -- Close current editor before unsplitting
  recent  -- Change to recent buffer before unsplitting
  recent-or-close -- Change to recent buffer before closing
  split, or close the current buffer if there is only
  one split left.

**Ctrl-W P**: **move-editor-focus-previous** - Move focus to previous editor split

**Ctrl-W Plus**: **grow-split-vertically** - Increase height of this split

**Ctrl-W Q**: Multiple commands; first available is executed:

  * **unsplit(action="close")** - Unsplit all editors so there's only one.  Action specifies how to
    choose the remaining displayed editor.  One of::
    
      current -- Show current editor
      close   -- Close current editor before unsplitting
      recent  -- Change to recent buffer before unsplitting
      recent-or-close -- Change to recent buffer before closing
      split, or close the current buffer if there is only
      one split left.

  * **close(close_window=1)** - Action varies according to focus:  *Application Control Commands*: Close active document.  Abandon any changes when ignore_changes is
    True.  Close empty windows when close_window is true and quit if all
    document windows closed when can_quit is true.; *Open Files Tool Commands*: Close the currently selected items in the Open Files tool


**Ctrl-W S**: **split-vertically** - Split current view vertically.  Create new editor in new view when new==1.

**Ctrl-W T**: **move-editor-focus-first** - Move focus to first editor split

**Ctrl-W Up**: **move-editor-focus(dir=-1, wrap=False)** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-W V**: **split-horizontally** - Split current view horizontally. 

**Ctrl-W W**: **move-editor-focus(dir=-1)** - Move focus to next or previous editor split, optionally wrapping when
the end is reached.

**Ctrl-X**: **vi-ctrl-x**

**Ctrl-X**: **vi-ctrl-x**

**Ctrl-Y**: **scroll-text-up(move_cursor=False)** - Scroll text up a line w/o moving cursor's relative position on screen.
Repeat is number of lines or if >0 and <1.0 then percent of screen.  Set move_cursor
to False to leave cursor in current position within the source, otherwise it is
moved so the cursor remains on same screen line.

**D**: **delete-next-move** - Delete the text covered by the next cursor move command.

**D**: **move-to-register(unit="sel", cut=1)** - Cut or copy a specified number of characters or lines, or the current
selection. Set cut=1 to remove the range of text from the editor after
moving to register (otherwise it is just copied). Unit should be one of
'char' or 'line' or 'sel' for current selection.

**Delete**: **forward-delete-char** - Action varies according to focus:  *Focused Editor Commands*: Delete one character in front of the cursor ; *Toolbar Search Commands*: Delete character in front of the cursor

**Dollar**: **end-of-line** - Action varies according to focus:  *Focused Editor Commands*: Move to end of current line; *Toolbar Search Commands*: Move to the end of the toolbar search entry

**Dollar**: **end-of-line** - Action varies according to focus:  *Focused Editor Commands*: Move to end of current line; *Toolbar Search Commands*: Move to the end of the toolbar search entry

**Down**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**E**: **forward-word(gravity="endm1")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**End**: **end-of-line** - Action varies according to focus:  *Focused Editor Commands*: Move to end of current line; *Toolbar Search Commands*: Move to the end of the toolbar search entry

**Equal**: **indent-to-match-next-move** - Indent lines spanned by next cursor move to match, based on the preceding line

**Escape**: **clear-move-command** - Clear any pending move command action, as for VI mode

**Escape**: **enter-browse-mode** - Enter editor browse mode

**Escape**: **enter-browse-mode** - Enter editor browse mode

**Escape**: **exit-visual-mode** - Exit visual mode and return back to default mode

**Exclam**: **filter-next-move** - Filter the lines covered by the next cursor move command
through an external command and replace the lines with the result

**Exclam**: **filter-selection** - Filter the current selection through an external command and replace
the lines with the result

**F**: **search-char(dir=1, single_line=1)** - Search for the given character. Searches to right if dir > 0 and to
left if dir < 0. Optionally place cursor pos characters to left or right
of the target (e.g., use -1 to place one to left). If repeat > 1, the Nth
match is found. Set single_line=1 to search only within the current
line.

**F1**: Multiple commands; first available is executed:

  * **show-horizontal-tools** - Show the horizontal tool area

  * **minimize-horizontal-tools** - Minimize the horizontal tool area


**F11**: **frame-up** - Move up the current debug stack

**F12**: **frame-down** - Move down the current debug stack

**F2**: Multiple commands; first available is executed:

  * **show-vertical-tools** - Show the vertical tool area

  * **minimize-vertical-tools** - Minimize the vertical tool area


**F3**: **search-forward** - Search again using the search manager's current settings
in forward direction 

**F4**: **goto-selected-symbol-defn** - Goto the definition of the selected source symbol.  If other_split is
true, the definition will be displayed if a split other than the current
split; if other_split is false, it will be displayed in the current editor;
if other_split is not specified or None, the split to be used is determined
by the Split Reuse Policy preference value. 

**F5**: **debug-continue** - Start or continue debugging to next breakpoint or exception (press Alt to continue all paused debug processes)

**F6**: **step-over-statement** - Step over current statement

**F7**: **step-into** - Step into current execution point, or start debugging at first line

**F8**: **step-out** - Step out of the current function or method

**F9**: Multiple commands; first available is executed:

  * **break-set** - Set a new regular breakpoint on current line

  * **break-clear** - Clear the breakpoint on the current line


**Forward-button-click**: **visit-history-next** - Move forward in history to next visited editor position

**G 0**: **beginning-of-screen-line** - Move to beginning of current wrapped line

**G 0**: **beginning-of-screen-line** - Move to beginning of current wrapped line

**G Asciicircum**: **beginning-of-screen-line-text** - Move to first non-blank character at beginning of current wrapped line

**G Asciicircum**: **beginning-of-screen-line-text** - Move to first non-blank character at beginning of current wrapped line

**G Asciitilde**: **case-swap-next-move** - Change case of text spanned by next cursor movement so each letter is
the opposite of its current case

**G D**: **goto-selected-symbol-defn** - Goto the definition of the selected source symbol.  If other_split is
true, the definition will be displayed if a split other than the current
split; if other_split is false, it will be displayed in the current editor;
if other_split is not specified or None, the split to be used is determined
by the Split Reuse Policy preference value. 

**G Dollar**: **end-of-screen-line** - Move to end of current wrapped line

**G Dollar**: **end-of-screen-line** - Move to end of current wrapped line

**G E**: **backward-word(gravity="endm1")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**G G**: **goto-nth-line(cursor="fnb")** - Position cursor at start of given line number (1=first, -1 = last).
This differs from goto-line in that it never prompts for a line number but
instead uses the previously entered numeric modifier or defaults to going
to line one. The cursor can be positioned at 'start', 'end', or 'fnb' for
first non-blank character.

**G J**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**G K**: **previous-line** - Move to previous screen line, optionally repositioning character
within line: same' to leave in same horizontal position, 'start' at start,
'end' at end, or 'fnb' for first non-blank char.

**G M**: **middle-of-screen-line** - Move to middle of current wrapped line

**G P**: **paste-register(cursor=1)** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**G Q**: **fill-paragraph** - Re-wrap the selected text or current line to the configured text wrap column. When
there is no selection, wrappable regions are delineated by surrounding blank lines.
Otherwise, when there is a selection, wrapping is constrained to occur only within
that selection. Wrapping behavior depends on context; for example, wrapping Python
code is different than wrapping plain text or the contents of comments and docstrings.
A shared leading prefix found on all lines is retained and only the content after the
prefix is wrapped.

**G Q Q**: **fill-paragraph** - Re-wrap the selected text or current line to the configured text wrap column. When
there is no selection, wrappable regions are delineated by surrounding blank lines.
Otherwise, when there is a selection, wrapping is constrained to occur only within
that selection. Wrapping behavior depends on context; for example, wrapping Python
code is different than wrapping plain text or the contents of comments and docstrings.
A shared leading prefix found on all lines is retained and only the content after the
prefix is wrapped.

**G R**: **replace-char(line_mode="extend")** - Replace num characters with given character.  Set line_mode to multiline to
allow replacing across lines, extend to replace on current line and then extend
the line length, and restrict to replace only if enough characters exist on
current line after cursor position.

**G Shift-D**: **goto-selected-symbol-defn** - Goto the definition of the selected source symbol.  If other_split is
true, the definition will be displayed if a split other than the current
split; if other_split is false, it will be displayed in the current editor;
if other_split is not specified or None, the split to be used is determined
by the Split Reuse Policy preference value. 

**G Shift-E**: **backward-word(delimiters=" \t\n\r", gravity="endm1")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**G Shift-I**: **enter-insert-mode(pos="sol")** - Enter editor insert mode

**G Shift-J**: **join-lines(delim="")** - Join together specified number of lines after current line (replace
newlines with the given delimiter (single space by default)

**G Shift-J**: **join-selection(delim="")** - Join together all lines in given selection (replace newlines with
the given delimiter (single space by default)

**G Shift-P**: **paste-register(pos=-1, cursor=1)** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**G Shift-T**: **previous-document** - Move to the previous document open in the current window. If alphabetical
is true, the list traversed will be alphabetized. If all_splits is true,
documents from all splits will be traversed; otherwise, only the current
split will be.

**G Shift-U**: **case-upper-next-move** - Change case of text spanned by next cursor movement to upper case

**G T**: **next-document** - Move to the next document open in the current window. If alphabetical
is true, the list traversed will be alphabetized. If all_splits is true,
documents from all splits will be traversed; otherwise, only the current
split will be.

**G U**: **case-lower-next-move** - Change case of text spanned by next cursor movement to lower case

**G V**: **previous-select** - Turn on auto-select using previous mode and selection

**Grave**: **vi-goto-bookmark** - Goto bookmark using single character name defined by
the next pressed key

**Greater**: **indent-lines** - Indent selected number of lines from cursor position.  Set lines to None
to indent all the lines in current selection.  Set levels to indent more
than one level at a time.

**Greater**: **indent-next-move** - Indent lines spanned by next cursor move

**H**: **backward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**H**: **backward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Home**: **beginning-of-line-text** - Move to end of the leading white space, if any, on the current line.
If toggle is True, moves to the beginning of the line if already at the
end of the leading white space (and vice versa).

**I**: **enter-insert-mode(pos="before")** - Enter editor insert mode

**I**: **select-inner** - Select a text object based on the following key press

**Insert**: **enter-insert-mode(pos="before")** - Enter editor insert mode

**Insert**: **toggle-overtype** - Toggle status of overtyping mode 

**Iso_left_tab**: **backward-tab** - Outdent line at current position 

**J**: **next-line** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**K**: **previous-line** - Move to previous screen line, optionally repositioning character
within line: same' to leave in same horizontal position, 'start' at start,
'end' at end, or 'fnb' for first non-blank char.

**L**: **forward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one character ; *Toolbar Search Commands*: Move forward one character

**L**: **forward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one character ; *Toolbar Search Commands*: Move forward one character

**Left**: **backward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one character ; *Toolbar Search Commands*: Move backward one character

**Less**: **outdent-lines** - Outdent selected number of lines from cursor position.  Set lines to None
to indent all the lines in current selection.  Set levels to outdent more
than one level at a time.

**Less**: **outdent-next-move** - Outdent lines spanned by next cursor move

**M**: **vi-set-bookmark** - Set a bookmark at current location on the editor using the next
key press as the name of the bookmark.

**Minus**: **previous-line-in-file(cursor="fnb")** - Move to previous line in file, repositioning character within line:
'start' at start, 'end' at end, or 'fnb' for first non-blank char.

**N**: **isearch-repeat** - Repeat the most recent isearch, using same string and regex/text.
Reverse direction when reverse is True.

**Next**: **forward-page-extend** - Move cursor forward one page, adjusting the selection 
range to new position 

**Numbersign**: **isearch-sel-backward(persist=0, whole_word=1)** - Initiate incremental mini-search backward from the cursor position,
using current selection as the search string.  Set persist=False to
do the search but end the interactive search session immediately.

**O**: **enter-insert-mode(pos="new-below")** - Enter editor insert mode

**O**: **exchange-point-and-mark** - When currently marking text, this exchanges the current position
and mark ends of the current selection

**P**: **paste-register** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**Page_down**: **forward-page** - Move cursor forward one page 

**Page_up**: **backward-page** - Move cursor backward one page 

**Percent**: **goto-percent-line(cursor="fnb")** - Position cursor at start of line at given percent in file.  This
uses the previously entered numeric modifier or defaults to going
to line one.  The cursor can be positioned at 'start', 'end', or
'fnb' for first non-blank character, or in VI mode it will do 
brace matching operation to reflect how VI overrides this command.

**Period**: **repeat-command** - Repeat the last editor command

**Plus**: **next-line-in-file(cursor="fnb")** - Move to next line in file, repositioning character within line:
'start' at start, 'end' at end, or 'fnb' for first non-blank char.

**Prior**: **backward-page-extend** - Move cursor backward one page, adjusting the selection 
range to new position 

**Q**: Multiple commands; first available is executed:

  * **start-kbd-macro(register=None)** - Start definition of a keyboard macro.  If register=None then the user
    is prompted to enter a letter a-z under which to file the macro.  Otherwise,
    register 'a' is used by default.

  * **stop-kbd-macro** - Stop definition of a keyboard macro 


**Question**: **isearch-backward-regex** - Action varies according to focus:  *Document Viewer Commands*: Initiate incremental regular expression mini-search backward from the
cursor position, optionally entering the given search string.; *Focused Editor Commands*: Initiate incremental regular expression mini-search backward from the
cursor position, optionally entering the given search string 

**Quotedbl**: **set-register** - Set the register to use for subsequent cut/copy/paste operations

**R**: **replace-char** - Replace num characters with given character.  Set line_mode to multiline to
allow replacing across lines, extend to replace on current line and then extend
the line length, and restrict to replace only if enough characters exist on
current line after cursor position.

**R**: **replace-char(line_mode="restrict")** - Replace num characters with given character.  Set line_mode to multiline to
allow replacing across lines, extend to replace on current line and then extend
the line length, and restrict to replace only if enough characters exist on
current line after cursor position.

**Release-Shift-Space**: **debug-hide-value-tips** - Hide all the debug value tooltips previously shown with debug_show_value_tips()

**Return**: **new-line** - Place a new line at the current cursor position.  Override the auto-indent
preference by setting auto_indent to 'never' to avoid indent, 'always' to
auto-indent, and 'blank-only' to auto-indent only on blank lines.

**Return**: **next-line(cursor="start")** - Move to screen next line, optionally repositioning character within
line: 'same' to leave in same horizontal position, 'start' at start, 'end'
at end, or 'fnb' for first non-blank char.

**Right**: **forward-char(wrap=0)** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one character ; *Toolbar Search Commands*: Move forward one character

**S**: **enter-insert-mode(pos="delete-sel")** - Enter editor insert mode

**S**: **forward-delete-char-insert** - Delete one char in front of the cursor and enter insert mode (when
working in modal key bindings)

**Semicolon**: **repeat-search-char** - Repeat the last search_char operation, optionally in the opposite
direction.

**Shift-A**: **enter-insert-mode(pos="after")** - Enter editor insert mode

**Shift-A**: **enter-insert-mode(pos="eol")** - Enter editor insert mode

**Shift-B**: **backward-word(delimiters=" \t\n\r")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**Shift-Backspace**: **backward-delete-char** - Action varies according to focus:  *Focused Editor Commands*: Delete one character behind the cursor, or the current selection
if not empty. ; *Toolbar Search Commands*: Delete character behind the cursor

**Shift-C**: **delete-to-end-of-line-insert** - Delete everything between the cursor and end of line and enter insert
move (when working in a modal editor key binding)

**Shift-D**: **delete-to-end-of-line(post_offset=-1)** - Delete everything between the cursor and end of line

**Shift-Delete**: **cut** - Action varies according to focus:  *Focused Editor Commands*: Cut selected text ; *Search Tool Commands*: Cut selected text ; *Toolbar Search Commands*: Cut selection 

**Shift-Down**: **forward-page** - Move cursor forward one page 

**Shift-E**: **forward-word(delimiters=" \t\n\r", gravity="endm1")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**Shift-End**: **end-of-line-extend** - Action varies according to focus:  *Focused Editor Commands*: Move to end of current line, adjusting the selection range 
to new position ; *Toolbar Search Commands*: Move to the end of the toolbar search entry, extending the selection

**Shift-F**: **search-char(dir=-1, single_line=1)** - Search for the given character. Searches to right if dir > 0 and to
left if dir < 0. Optionally place cursor pos characters to left or right
of the target (e.g., use -1 to place one to left). If repeat > 1, the Nth
match is found. Set single_line=1 to search only within the current
line.

**Shift-F1**: **move-focus** - Move the keyboard focus forward within the Window to the next editable
area

**Shift-F11**: **frame-show** - Show the position (thread and stack frame) where the debugger originally
stopped

**Shift-F2**: Multiple commands; first available is executed:

  * **enter-fullscreen** - Hide both the vertical and horizontal tool areas and toolbar, saving previous
    state so it can be restored later with exit_fullscreen

  * **exit-fullscreen** - Restore previous non-fullscreen state of all tools and tool bar


**Shift-F3**: **search-backward** - Search again using the search manager's current settings
in backward direction 

**Shift-F4**: **find-points-of-use** - Find points of use for a symbol.  The symbol defaults to the active
selection.  Finds points of use in the file the symbol is located and in
project files by default. 

**Shift-F5**: **debug-file** - Start debugging the current file (rather than the main entry point)

**Shift-F6**: **run-all-tests** - Runs all the tests in testing panel. 

**Shift-F7**: **run-current-tests** - Runs the current test or tests, if possible.  The current tests are
determined by the current position in the active view.  The tests are
debugged when debug is True.

**Shift-F8**: **start-select-char** - Turn on auto-select mode character by character

**Shift-F9**: Multiple commands; first available is executed:

  * **break-set-disabled** - Set a disabled breakpoint on the current line

  * **break-enable** - Enable the breakpoint on the current line

  * **break-disable** - Disable the breakpoint on current line


**Shift-G**: **goto-nth-line-default-end(cursor="fnb")** - Same as goto_nth_line but defaults to end of file if no lineno is given

**Shift-H**: **cursor-move-to-top** - Move cursor to top of display (without scrolling), optionally
at an offset of given number of lines below top

**Shift-Home**: **beginning-of-line-text-extend** - Move to end of the leading white space, if any, on the current line,
adjusting the selection range to the new position.  If toggle is True,
moves to the beginning of the line if already at the end of the leading
white space (and vice versa).

**Shift-I**: **enter-insert-mode(pos="before")** - Enter editor insert mode

**Shift-I**: **enter-insert-mode(pos="fnb")** - Enter editor insert mode

**Shift-Insert**: **paste** - Action varies according to focus:  *Focused Editor Commands*: Paste text from clipboard ; *Search Tool Commands*: Paste text from clipboard ; *Toolbar Search Commands*: Paste from clipboard 

**Shift-J**: **join-lines** - Join together specified number of lines after current line (replace
newlines with the given delimiter (single space by default)

**Shift-J**: **join-selection** - Join together all lines in given selection (replace newlines with
the given delimiter (single space by default)

**Shift-L**: **cursor-move-to-bottom** - Move cursor to bottom of display (without scrolling), optionally
at an offset of given number of lines before bottom

**Shift-Left**: **backward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor backward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed at
start or end of the word.; *Toolbar Search Commands*: Move backward one word

**Shift-M**: **cursor-move-to-center** - Move cursor to center of display (without scrolling) 

**Shift-N**: **isearch-repeat(reverse=1)** - Repeat the most recent isearch, using same string and regex/text.
Reverse direction when reverse is True.

**Shift-O**: **enter-insert-mode(pos="new-above")** - Enter editor insert mode

**Shift-O**: **exchange-point-and-mark** - When currently marking text, this exchanges the current position
and mark ends of the current selection

**Shift-P**: **paste-register(pos=-1)** - Paste text from register as before or after the current position. If
the register contains only lines, then the lines are pasted before or
after current line (rather than at cursor).  If the register contains 
fragments of lines, the text is pasted over the current selection or
either before or after the cursor.  Set pos = 1 to paste after, or
-1 to paste before. Set indent=1 to indent the pasted text to match
current line. Set cursor=-1 to place cursor before lines or cursor=1 to
place it after lines after paste completes.

**Shift-Page_down**: **forward-page-extend** - Move cursor forward one page, adjusting the selection 
range to new position 

**Shift-Page_up**: **backward-page-extend** - Move cursor backward one page, adjusting the selection 
range to new position 

**Shift-R**: **enter-insert-mode(pos="delete-lines")** - Enter editor insert mode

**Shift-R**: **enter-replace-mode** - Enter editor replace mode

**Shift-Return**: **new-line-before** - Place a new line before the current line 

**Shift-Right**: **forward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**Shift-S**: **delete-line-insert** - Delete the current line or lines when the selection spans multiple
lines or given repeat is > 1.  Enters insert mode (when working with
modal key bindings).

**Shift-Space**: Multiple commands; first available is executed:

  * **debug-show-value-tips(release_toggle=True)** - Show tooltips on all visible editors indicating the current value of
    all visible symbols.  The value of release_toggle controls whether this
    command is available if the tips are already shown; this can be used
    to prevent execution of fallback commands on a key binding while the
    tips are already visible, if the key is pressed again or reported in
    key repeat events while the key is held down.

  * **send-keys(keys=" ")** - Send one or more keys to the editor. Send a string to enter each key in the string,
    or a list of strings and/or (mod, key) tuples where mod is a string containing any of
    case insensitive 'shift', 'ctrl', or 'alt'.  Valid examples::
    
      "testme"
      "TestMe"
      ["test", ('Alt', 'X'), "m"]
      [('ctrl-Shift', 'X'), ('shift','E'),]


**Shift-T**: **search-char(dir=-1, pos=1, single_line=1)** - Search for the given character. Searches to right if dir > 0 and to
left if dir < 0. Optionally place cursor pos characters to left or right
of the target (e.g., use -1 to place one to left). If repeat > 1, the Nth
match is found. Set single_line=1 to search only within the current
line.

**Shift-Tab**: **backward-tab** - Outdent line at current position 

**Shift-Up**: **backward-page** - Move cursor backward one page 

**Shift-V**: **enter-browse-mode** - Enter editor browse mode

**Shift-V**: **start-select-line** - Turn on auto-select mode line by line

**Shift-W**: **forward-word(delimiters=" \t\n\r")** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**Shift-X**: **backward-delete-char** - Action varies according to focus:  *Focused Editor Commands*: Delete one character behind the cursor, or the current selection
if not empty. ; *Toolbar Search Commands*: Delete character behind the cursor

**Shift-Y**: **move-to-register(unit="line")** - Cut or copy a specified number of characters or lines, or the current
selection. Set cut=1 to remove the range of text from the editor after
moving to register (otherwise it is just copied). Unit should be one of
'char' or 'line' or 'sel' for current selection.

**Shift-Y**: **move-to-register(unit="line")** - Cut or copy a specified number of characters or lines, or the current
selection. Set cut=1 to remove the range of text from the editor after
moving to register (otherwise it is just copied). Unit should be one of
'char' or 'line' or 'sel' for current selection.

**Shift-Z Shift-Q**: **close(ignore_changes=1, close_window=1)** - Action varies according to focus:  *Application Control Commands*: Close active document.  Abandon any changes when ignore_changes is
True.  Close empty windows when close_window is true and quit if all
document windows closed when can_quit is true.; *Open Files Tool Commands*: Close the currently selected items in the Open Files tool

**Shift-Z Shift-Z**: **write-file-and-close(filename=None)** - Write current document to given location and close it.  Saves to current
file name if the given filename is None.

**Slash**: **isearch-forward-regex** - Action varies according to focus:  *Document Viewer Commands*: Initiate incremental regular expression mini-search forward from the
cursor position, optionally entering the given search string.; *Focused Editor Commands*: Initiate incremental regular expression mini-search forward from the
cursor position, optionally entering the given search string 

**Space**: **forward-char** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one character ; *Toolbar Search Commands*: Move forward one character

**T**: **search-char(dir=1, pos=1, single_line=1)** - Search for the given character. Searches to right if dir > 0 and to
left if dir < 0. Optionally place cursor pos characters to left or right
of the target (e.g., use -1 to place one to left). If repeat > 1, the Nth
match is found. Set single_line=1 to search only within the current
line.

**Tab**: **tab-key** - Implement the tab key, the action of which is configurable by preference

**Timeout-J J**: **enter-browse-mode** - Enter editor browse mode

**Timeout-J K**: **enter-browse-mode** - Enter editor browse mode

**U**: **undo** - Undo last action 

**Underscore**: **beginning-of-line-text** - Move to end of the leading white space, if any, on the current line.
If toggle is True, moves to the beginning of the line if already at the
end of the leading white space (and vice versa).

**Underscore**: **beginning-of-line-text** - Move to end of the leading white space, if any, on the current line.
If toggle is True, moves to the beginning of the line if already at the
end of the leading white space (and vice versa).

**Up**: **previous-line** - Move to previous screen line, optionally repositioning character
within line: same' to leave in same horizontal position, 'start' at start,
'end' at end, or 'fnb' for first non-blank char.

**V**: **enter-browse-mode** - Enter editor browse mode

**V**: **start-select-char** - Turn on auto-select mode character by character

**W**: **forward-word** - Action varies according to focus:  *Focused Editor Commands*: Move cursor forward one word. Optionally, provide a string that
contains the delimiters to define which characters are part of a word.
Gravity may be "start" or "end" to indicate whether cursor is placed
at start or end of the word.; *Toolbar Search Commands*: Move forward one word

**X**: **forward-delete-char-within-line** - Delete one character in front of the cursor unless at end of line,
in which case delete backward.  Do nothing if the line is empty.  This 
is VI style 'x' in browser mode.

**X**: **move-to-register(unit="sel", cut=1)** - Cut or copy a specified number of characters or lines, or the current
selection. Set cut=1 to remove the range of text from the editor after
moving to register (otherwise it is just copied). Unit should be one of
'char' or 'line' or 'sel' for current selection.

**Y**: **move-to-register(unit="sel")** - Cut or copy a specified number of characters or lines, or the current
selection. Set cut=1 to remove the range of text from the editor after
moving to register (otherwise it is just copied). Unit should be one of
'char' or 'line' or 'sel' for current selection.

**Y**: **move-to-register-next-move** - Move the text spanned by the next cursor motion to a register

**Z B**: **cursor-to-bottom** - Scroll so cursor is centered at bottom of display 

**Z C**: **fold-collapse-current** - Collapse the current fold point 

**Z H**: **scroll-text-right** - Scroll text right a column w/o moving cursor's relative position on screen.
Repeat is number of columns or if >0 and <1.0 then percent of screen.

**Z L**: **scroll-text-left** - Scroll text left a column w/o moving cursor's relative position on screen.
Repeat is number of columns or if >0 and <1.0 then percent of screen.

**Z M**: **vi-fold-less** - Approximation of zm key binding in vim

**Z Minus**: **cursor-to-bottom** - Scroll so cursor is centered at bottom of display 

**Z O**: **fold-expand-current** - Expand the current fold point 

**Z Period**: **center-cursor** - Scroll so cursor is centered on display 

**Z Plus**: **cursor-to-top** - Scroll so cursor is centered at top of display 

**Z R**: **vi-fold-more** - Approximation of zr key binding in vim

**Z Return**: **cursor-to-top** - Scroll so cursor is centered at top of display 

**Z Shift-H**: **scroll-text-right(repeat=0.5)** - Scroll text right a column w/o moving cursor's relative position on screen.
Repeat is number of columns or if >0 and <1.0 then percent of screen.

**Z Shift-L**: **scroll-text-left(repeat=0.5)** - Scroll text left a column w/o moving cursor's relative position on screen.
Repeat is number of columns or if >0 and <1.0 then percent of screen.

**Z Shift-M**: **fold-collapse-all** - Collapse all fold points in the current file 

**Z Shift-O**: **fold-expand-all-current** - Expand the current fold point completely 

**Z Shift-R**: **fold-expand-all** - Expand all fold points in the current file 

**Z T**: **cursor-to-top** - Scroll so cursor is centered at top of display 

**Z Z**: **center-cursor** - Scroll so cursor is centered on display 
