All Manuals > LispWorks Editor User Guide > 2 General Concepts


2.2 Buffer positions: points, marks and locations

2.2.1 Points

A point is a position in a buffer where editor commands take effect. The current point is generally between the character indicated by the cursor and the previous character (that is, it actually lies between two characters). Many types of commands (that is, moving, inserting, deleting) operate with respect to the current point, and indeed move that point.

Each buffer has a current point associated with it. A buffer that is not being displayed remembers where its current point is and returns the user to that point when the buffer is redisplayed.

If the same buffer is being displayed in more than one window, there is a point associated with the buffer for each window. These points are independent of each other.

2.2.2 Marks

The position of a point can be saved for later reference by setting a mark. Marks may either be set explicitly or as side effects of commands. More than one mark may be associated with a single buffer and saved in what is known as a mark ring. As for points, the positions of marks in a buffer are remembered even if that buffer is not currently being displayed.

2.2.3 Regions

A region is the area of text between the mark and the current point. Many editor commands affect only a specified region.

2.2.4 Locations

A location is the position of the current point in a buffer at some time in the past. Locations are recorded automatically by commands that take you to a different buffer or where you might lose your place within the current buffer. They are designed to be a more comprehensive form of the mark ring but without the interaction with the selected region.

LispWorks Editor User Guide (Unix version) - 9 Dec 2014