Structural coordinates uses bracketing characters to navigate by s-expressions (see Expressions (emacs)).
The dimensions specific to this coordinate system are “exprs”, “depth”, and “defuns”.
Moving in the “exprs” dimension goes over s-expressions, that is, balanced bracketed expressions. In the simplest case, with no brackets, it will move over a symbol, as defined by the major mode's syntax table. This is typically an identifier in a programming language.
When before an “open parenthesis” character, moving forward in this dimension will move to just after the corresponding “close parenthesis”; likewise, moving backward from just after a “close parenthesis” will move to just before the corresponding “open parenthesis”.
The whole expression (whether a single symbol, or an expression on parentheses) is selected.
Moving in the “depth” dimension goes in and out levels of parentheses. It leaves the selection split into the opening and closing parenthesis characters.
Moving in the “defuns” dimension moves over successive top-level function definitions.
In structured text languages such as HTML, the sexp-based commands are
augmented to treat opening and closing tags as a form of parentheses;
depth dimensions handle this. (This is
built using the “nested blocks” facility, which you can also use by
itself; see see Structured Text.)
The dimensions available in structural coordinates are as follows: