## 2 Selecting Messages ¶

In order to read, delete, or do anything to a message, you need to select it. In other words, make the message the current message.

The primary commands for selecting messages in VM are `n` (`vm-next-message`) and `p` (`vm-previous-message`). These commands move forward and backward through the current folder. By default, these commands skip messages flagged for deletion. This behavior can be disabled by setting the value of the variable `vm-skip-deleted-messages` to `nil`. These commands can also be made to skip messages that have been read; set `vm-skip-read-messages` to `t` to do this.

The commands `n` and `p` also take prefix arguments that specify the number of messages to move forward or backward. If the magnitude of the prefix argument is greater than 1, no message skipping will be done regardless of the settings of the skip variables.

The variable `vm-circular-folders` determines whether VM folders will be considered circular by various commands. Circular means VM will wrap from the end of the folder to the start and vice versa when moving the message pointer, deleting, undeleting or saving messages before or after the current message.

A value of `t` causes all VM commands to consider folders circular. A value of `nil` causes all VM commands to signal an error if the start or end of the folder would have to be passed to complete the command. For movement commands, this occurs after the message pointer has been moved as far as it can go. For other commands the error occurs before any part of the command has been executed, i.e. no deletions, saves, etc. will be done unless they can be done in their entirety. A value other than `nil` or `t` causes only VM’s movement commands to consider folders circular. Saves, deletes and undeletes will behave as if the value is `nil`. The default value of `vm-circular-folders` is `nil`.

You can also select messages by using the summary window. See Summaries. Move the cursor to the summary line for the message you want to select and press `RET`. VM will select this message. Instead of pressing `RET` you could run some other VM command that operates based on the notion of a ‘current message’. VM will select the message under the cursor in the summary window before executing such commands. Example, if you type `d`, VM will select the message under the cursor and then delete it. Note that this occurs only when you execute a command when the cursor is in the summary buffer window and only if the variable `vm-follow-summary-cursor` is non-`nil`.

When a folder is visited or when you type `g` and VM retrieves some mail, the default action is to move to the first new or unread message in the folder. New messages are favored over old but unread messages. If you set `vm-jump-to-new-messages` to `nil`, VM will favor old, unread messages over new messages if the old, unread message appears earlier in the folder. If you set `vm-jump-to-unread-messages` to `nil` also, VM will not search for new or unread messages.

Other commands to select messages:

``RET` (`vm-goto-message`)` ¶

  Go to message number n. n is the prefix argument, if provided, otherwise it is prompted for in the minibuffer.

`TAB (`vm-goto-message-last-seen`)`

  Go to message last previewed or read.

`N (`vm-next-message-no-skip`)`
`P (`vm-previous-message-no-skip`)`

  Go to the next (previous) message, ignoring the settings of the skip control variables.

`M-n (`vm-next-unread-message`)`
`M-p (`vm-previous-unread-message`)`

  Move forward (backward) to the nearest new or unread message.

`M-s (`vm-isearch-forward`)`
`M-x vm-isearch-backward`

  These work just like Emacs’ normal forward and backward incremental search commands, except that when the search ends, VM selects the message containing point. If the value of the variable `vm-search-using-regexps` is non-`nil`, a regular expression may be used instead of a fixed string for the search pattern; VM defaults to the fixed string search. If a prefix argument is given, the value of `vm-search-using-regexps` is temporarily reversed for the search. See Incremental Search in the GNU Emacs Manual.