Elpy is an extension to Emacs, and as such the standard bindings in Emacs are available. This manual is not meant to be an introduction to Emacs, but this section will still highlight some features in Emacs that are especially useful for Python editing.
Movement keys in Emacs often use
fbnp for forward, backward, next
(down) and previous (up).
DEL) are for
deleting. These are combined with the
Control-Meta modifiers. Control generally refers to the simplest
C-f moves one character forward. Meta changes this to affect
words, that is, consecutive sequences of alphanumeric characters.
The Control-Meta combination then affects whole expressions.
In the following table,
| refers to the position of point.
Expression-based commands will also work on strings, tuples, dictionaries, or any balanced groups of parentheses. This works for all movement keys (f, b, n, p`), with next and previous moving to the next or previous group of parens. It also works with forward and backward deletion (d and DEL/<backspace>, respectively) for character and word groups, but not for expressions. To delete the expression after point, use C-M-k. For the expression before point, you can use C-M-b C-M-k.
If you enable
subword-mode, Emacs will also consider
CamelCase to be two words instead of one for the purpose of these
In addition to the above, Emacs also supports moving up or down inside nested parentheses groups. C-M-d will move down into the next enclosed group of parentheses, while C-M-u will move up to the directly enclosing group of parentheses.
Finally, a lot of Elpy’s commands change their behavior when the prefix argument is given. That is, hit C-u before the command. In Elpy, the prefix argument often disables any attempt by the command at being smart, in case it would get it wrong.
Moving By Indentation¶
These commands are used to navigate between lines with same indentation as the current line. Point should be placed on the first non-whitespace character of the line and then use C-down to move forward or C-up to move backward.
These commands are used to navigate between indentation levels. C-left moves point to previous indent level or over previous word. C-right moves point to next indent level or over the next word.
Moving the Current Region¶
Elpy can move the selected region (or the current line if no region is selected) by using the cursor keys with meta. Left and right will dedent or indent the code, while up and down will move it line-wise up or down, respectively.