C Mode Motion Commands
This section describes commands for moving point, in C mode and related modes.
- C-M-a, C-M-e
- Move point to the beginning or end of the current function or top-level definition. In languages with enclosing scopes (such as C++'s classes) the current function is the immediate one, possibly inside a scope. Otherwise it is the one defined by the least enclosing braces. (By contrast,
beginning-of-defunandend-of-defunsearch for braces in column zero.) Moving by Defuns. - C-c C-u
- Move point back to the containing preprocessor conditional, leaving the mark behind. A prefix argument acts as a repeat count. With a negative argument, move point forward to the end of the containing preprocessor conditional.
#elifis equivalent to#elsefollowed by#if, so the function will stop at a#elifwhen going backward, but not when going forward. - C-c C-p
- Move point back over a preprocessor conditional, leaving the mark behind. A prefix argument acts as a repeat count. With a negative argument, move forward.
- C-c C-n
- Move point forward across a preprocessor conditional, leaving the mark behind. A prefix argument acts as a repeat count. With a negative argument, move backward.
- M-a
- Move point to the beginning of the innermost C statement (
c-beginning-of-statement). If point is already at the beginning of a statement, move to the beginning of the preceding statement. With prefix argument n, move back n - 1 statements. In comments or in strings which span more than one line, this command moves by sentences instead of statements. - M-e
- Move point to the end of the innermost C statement or sentence; like
M-aexcept that it moves in the other direction (c-end-of-statement).