Navigation with the Insertion CursorThe insertion cursor can be moved forward and backward through text in various granularities; e.g., characters, words, paragraphs. It can also be moved up and down in the text.
Each window has an independent insertion cursor. When several windows display the same bufferpossibly in different viewseach insertion cursor can point to different parts of the buffer. The window in which an insertion-cursor motion command is invoked scrolls, if necessary, to make sure that the insertion cursor is always visible in the window.
All insertion-cursor motion commands are parser-initiating. This means that movement of the insertion cursor beyond the boundaries of a text buffer may cause the text to be submitted for syntactic analysis and translation. In particular, when moving the insertion cursor to a target location, parsing is invoked if all of the following hold true: (1) auto-parsing mode is enabled, (2) the current structural selection is a text buffer, (3) the text buffer is either new or modified since the last attempt to parse it, and (4) the target location is beyond the boundaries of the text buffer. There are three possibilities to consider: no parse is initiated, parsing fails, and parsing succeeds.
If no parse is initiated, the insertion cursor moves to the target location.
If parsing fails, a syntax-error message is issued, the insertion cursor is positioned near the error, and the rest of the command is cancelled.
If parsing succeeds, the object is re-prettyprinted and thereafter the insertion cursor moves to the target location. If the target location no longer exists after re-prettyprinting (e.g., it was within an in-line error message that changed or was eliminated as a consequence of the successful parse), the insertion cursor moves to a nearby location.
Insertion-cursor motion commands are: