Shifting body text¶
The Shift Left and Shift Right commands shift selected lines in the body text left or right one tab position. These commands shift the entire line if any characters in that line are selected.
This chapter discusses all of Leo’s menu commands. It starts with a discussion of the Emacs-like minibuffer, then continues with a discussion of commands in each of Leo’s menus.
Contents
Typing a period when @language python is in effect starts autocompletion. Typing Return or Control-g (keyboard-quit) exits autocompletion.
Autocompletion shows what may follow a period in code. (Actually you can specify any character using the auto-complete shortcut setting.) For example, after typing g. Leo will show a list of all the global functions in leoGlobals.py. Autocompletion works much like tab completion in the minibuffer. Unlike the minibuffer, the presently selected completion appears directly in the body pane.
A leading period brings up ‘Autocomplete Modules’. (The period goes away.) You can also get any module by typing its name. If more than 25 items would appear in the Autocompleter tab, Leo shows only the valid starting characters. At this point, typing an exclamation mark shows the complete list. Thereafter, typing further exclamation marks toggles between full and abbreviated modes.
If x is a list ‘x.!’ shows all its elements, and if x is a Python dictionary, ‘x.!’ shows x.keys(). For example, ‘sys.modules.!’ Again, further exclamation marks toggles between full and abbreviated modes.
During autocompletion, typing a question mark shows the docstring for the object. For example: ‘g.app?’ shows the docstring for g.app. This doesn’t work (yet) directly for Python globals, but ‘__builtin__.f?’ does. Example: ‘__builtin__.pow?’ shows the docstring for pow.
Autocompletion works in the Find tab; you can use <Tab> to cycle through the choices. The ‘Completion’ tab appears while you are doing this; the Find tab reappears once the completion is finished.
Calltips appear after you type an open parenthesis in code. Calltips shows the expected arguments to a function or method. Calltips work for any Python function or method, including Python’s global functions. Typing Return or Control-g (keyboard-quit) exits calltips.
Examples:
The calltips appear directly in the text and the argument list is highlighted so you can just type to replace it. The calltips appear also in the status line for reference after you have started to replace the args.
Options
Both autocompletion and calltips are initially enabled or disabled by the enable_autocompleter and enable_calltips settings in leoSettings.leo. You may enable or disable these features at any time with these commands: enable-auto-completer-command, enable-calltips-command, disable-auto-completer-command and disable-calltips-command.
The mini-buffer is a text area at the bottom of the body pane. You use it like the Emacs mini-buffer to invoke commands by their so-called long name. The following commands affect the minibuffer:
For example, to print a list of all commands type Alt-X print-commands <Return>.
The following sections list the various commands that you can invoke from the minibuffer. Important: you may bind keystrokes to any of these commands. See Customizing Leo for full details.
The following basic editing commands are typically bound to key strokes:
back-char
back-char-extend-selection
back-paragraph
back-paragraph-extend-selection
back-sentence
back-sentence-extend-selection
back-to-indentation
back-word
back-word-extend-selection
backward-delete-char
backward-kill-paragraph
backward-kill-sentence
backward-kill-word
beginning-of-buffer
beginning-of-buffer-extend-selection
beginning-of-line
beginning-of-line-extend-selection
cut-text
delete-char
end-of-buffer
end-of-buffer-extend-selection
end-of-line
end-of-line-extend-selection
exchange-point-mark
extend-to-word
forward-char
forward-char-extend-selection
forward-paragraph
forward-paragraph-extend-selection
forward-sentence
forward-sentence-extend-selection
forward-word
forward-word-extend-selection
insert-newline
move-lines-down
move-lines-up
move-past-close
move-past-close-extend-selection
newline-and-indent
next-line
next-line-extend-selection
paste-text
previous-line
previous-line-extend-selection
redo
select-all
set-mark-command
undo
These commands are for debugging Leo itself:
collect-garbage
debug
disable-gc-trace
dump-all-objects
dump-new-objects
dump-outline
enable-gc-trace
free-tree-widgets
print-focus
print-gc-summary
print-stats
verbose-dump-objects
The following commands work just like their Emacs counterparts. Use the help-for-command command for further details:
abbrev-mode
add-global-abbrev
add-space-to-lines
add-tab-to-lines
advertised-undo
append-to-buffer
append-to-register
call-last-keyboard-macro
capitalize-word
center-line
center-region
clean-lines
clear-extend-mode
clear-kill-ring
clear-rectangle
clear-selected-text
close-rectangle
copy-rectangle-to-register
copy-text
copy-to-register
count-region
dabbrev-completion
dabbrev-expands
delete-comments
delete-file
delete-indentation
delete-rectangle
delete-spaces
diff
digit-argument
downcase-region
downcase-word
end-kbd-macro
escape
eval-expression
expand-region-abbrevs
fill-paragraph
fill-region
fill-region-as-paragraph
flush-lines
full-command
goto-char
how-many
increment-register
indent-region
indent-relative
indent-rigidly
indent-to-comment-column
insert-body-time
insert-file
insert-keyboard-macro
insert-parentheses
insert-register
inverse-add-global-abbrev
jump-to-register
keep-lines
keyboard-quit
kill-all-abbrevs
kill-buffer
kill-line
kill-paragraph
kill-rectangle
kill-region
kill-region-save
kill-sentence
kill-word
line-number
list-abbrevs
list-buffers-alphabetically
load-file
make-directory
match-bracket
name-last-kbd-macro
negative-argument
number-command
number-command-0
number-command-1
number-command-2
number-command-3
number-command-4
number-command-5
number-command-6
number-command-7
number-command-8
number-command-9
open-rectangle
point-to-register
prepend-to-buffer
prepend-to-register
read-abbrev-file
remove-blank-lines
remove-directory
remove-sentinels
remove-space-from-lines
remove-tab-from-lines
rename-buffer
repeat-complex-command
reverse-region
run-unit-tests
select-paragraph
set-comment-column
set-fill-column
set-fill-prefix
shell-command
shell-command-on-region
sort-columns
sort-fields
sort-lines
split-line
start-kbd-macro
string-rectangle
suspend
switch-to-buffer
tabify
transpose-chars
transpose-lines
transpose-words
unindent-region
universal-argument
unmark-all
untabify
upcase-region
upcase-word
view-lossage
view-register
what-line
yank
yank-pop
yank-rectangle
zap-to-character
Here is a list of all of Leo’s find commands. The apropos-find-commands command will print a detailed help message discussing these commands:
clone-find-all
find-character
find-tab-change
find-tab-change-all
find-tab-change-then-find
find-tab-find
find-tab-find-all
find-tab-find-prev
find-word
isearch-backward
isearch-backward-regexp
isearch-forward
isearch-forward-regexp
isearch-with-present-options
query-replace
query-replace-regex
re-search-backward
re-search-forward
replace-string
search-again
search-backward
search-forward
search-with-present-options
set-find-everywhere
set-find-node-only
set-find-suboutline-only
toggle-find-ignore-case-option
toggle-find-in-body-option
toggle-find-in-headline-option
toggle-find-mark-changes-option
toggle-find-mark-finds-option
toggle-find-regex-option
toggle-find-reverse-option
toggle-find-word-option
toggle-find-wrap-around-option
word-search-backward
word-search-forward
The following commands simulate mouse clicks, double-clicks or drags:
abort-edit-headline
activate-cmds-menu
activate-edit-menu
activate-file-menu
activate-help-menu
activate-outline-menu
activate-plugins-menu
activate-window-menu
add-editor
cascade-windows
click-click-box
click-headline
click-icon-box
close-window
contract-body-pane
contract-log-pane
contract-outline-pane
contract-pane
cycle-editor-focus
cycle-focus
delete-editor
double-click-headline
double-click-icon-box
edit-headline
end-edit-headline
equal-sized-panes
expand-body-pane
expand-log-pane
expand-outline-pane
expand-pane
focus-to-body
focus-to-log
focus-to-minibuffer
focus-to-tree
fully-expand-body-pane
fully-expand-log-pane
fully-expand-outline-pane
fully-expand-pane
hide-body-pane
hide-find-tab
hide-invisibles
hide-log-pane
hide-mini-buffer
hide-outline-pane
hide-pane
hide-spell-tab
iconify-frame
minimize-all
open-compare-window
open-find-dialog
open-find-tab
open-spell-tab
press-rst3-button
press-save-button
press-spell-button
resize-to-screen
scroll-down
scroll-down-extend-selection
scroll-outline-down-line
scroll-outline-down-page
scroll-outline-up-line
scroll-outline-up-page
scroll-up
scroll-up-extend-selection
show-mini-buffer
simulate-begin-drag
simulate-end-drag
toggle-active-pane
toggle-invisibles
toggle-mini-buffer
toggle-split-direction
The following commands print various helpful messages. Apropos commands print longer discussions of specific topics. The help-for-command command prompts for a command name (you can use typing completion to specify the command) and then prints a brief description of that command:
apropos-autocompletion
apropos-bindings
apropos-find-commands
help
help-for-command
mode-help
print-bindings
print-commands
python-help
These commands put Leo into various kinds of modes.
Here is the full list of mode-related commands:
auto-complete
auto-complete-force
disable-autocompleter
disable-calltips
enable-autocompleter
enable-calltips
enter-apropos-mode
enter-commands-mode
enter-edit-mode
enter-emacs-mode
enter-extract-mode
enter-file-mode
enter-gui-mode
enter-help-mode
enter-kill-mode
enter-modes-mode
enter-move-outline-mode
enter-outline-mode
enter-quick-command-mode
enter-toggle-find-mode
exit-named-mode
set-command-state
set-extend-mode
set-insert-state
set-overwrite-state
set-silent-mode
show-calltips
show-calltips-force
toggle-autocompleter
toggle-calltips
toggle-extend-mode
toggle-input-state
The following commands invoke Leo’s outline commands:
clone-node
contract-all
contract-node
contract-or-go-left
contract-parent
copy-node
cut-node
de-hoist
delete-node
demote
expand-to-level-1
expand-to-level-2
expand-to-level-3
expand-to-level-4
expand-to-level-5
expand-to-level-6
expand-to-level-7
expand-to-level-8
expand-to-level-9
expand-all
expand-and-go-right
expand-next-level
expand-node
expand-or-go-right
expand-prev-level
go-back
go-forward
goto-first-node
goto-first-sibling
goto-last-node
goto-last-sibling
goto-last-visible
goto-line
goto-line-number
goto-next-changed
goto-next-clone
goto-next-marked
goto-next-node
goto-next-sibling
goto-next-visible
goto-parent
goto-prev-node
goto-prev-sibling
goto-prev-visible
hoist
insert-node
mark
mark-changed-items
mark-subheads
move-outline-down
move-outline-left
move-outline-right
move-outline-up
outline-to-CWEB
outline-to-noweb
paste-node
paste-retaining-clones
promote
sort-children
sort-siblings
Here are various miscellaneous minibuffer commands:
about-leo
add-comments
check-all-python-code
check-outline
check-python-code
clear-recent-files
convert-all-blanks
convert-all-tabs
convert-blanks
convert-tabs
execute-script
export-headlines
exit-leo
extract
extract-names
extract-section
flatten-outline
goto-global-line
import-at-file
import-at-root
import-cweb-files
import-derived-file
import-flattened-outline
import-noweb-files
insert-headline-time
new
open-leoDocs-leo
open-leoPlugins-leo
open-leoSettings-leo
open-offline-tutorial
open-online-home
open-online-tutorial
open-outline
open-outline-by-name
open-python-window
open-with
open-with-idle
open-with-word
open-with-wordpad
pretty-print-all-python-code
pretty-print-python-code
read-at-file-nodes
read-outline-only
reformat-paragraph
revert
save-buffers-kill-leo
save-file
save-file-as
save-file-to
settings
set-colors
set-font
show-colors
show-find-options
show-fonts
show-invisibles
spell-change
spell-change-then-find
spell-find
spell-ignore
toggle-angle-brackets
weave
write-abbrev-file
write-at-file-nodes
write-dirty-at-file-nodes
write-missing-at-file-nodes
write-outline-only