Emacs has commands for moving over or operating on words. By convention, the keys for them are all Meta- characters.
Move forward over a word (forward-word
).
Move backward over a word (backward-word
).
Kill up to the end of a word (kill-word
).
Kill back to the beginning of a word (backward-kill-word
).
Mark the end of the next word (mark-word
).
Transpose two words; drag a word forward
or backward across other words (transpose-words
).
Notice how these keys form a series that parallels the character-based C-f, C-b, C-d, C-t and DEL. M-@ is related to C-@, which is an alias for C-SPC.
The commands Meta-f (forward-word
) and Meta-b
(backward-word
) move forward and backward over words. They are
analogous to Control-f and Control-b, which move over single
characters. Like their Control- analogues, Meta-f and
Meta-b move several words if given an argument. Meta-f with a
negative argument moves backward, and Meta-b with a negative argument
moves forward. Forward motion stops after the last letter of the
word, while backward motion stops before the first letter.
Meta-d (kill-word
) kills the word after point. To be
precise, it kills everything from point to the place Meta-f would
move to. Thus, if point is in the middle of a word, Meta-d kills
just the part after point. If some punctuation comes between point and the
next word, it is killed along with the word. (To kill only the
next word but not the punctuation before it, simply type Meta-f to get
to the end and kill the word backwards with Meta-DEL.)
Meta-d takes arguments just like Meta-f.
Meta-DEL (backward-kill-word
) kills the word before
point. It kills everything from point back to where Meta-b would
move to. If point is after the space in ‘FOO, BAR’, then
‘FOO, ’ is killed. To kill just ‘FOO’, type
Meta-b Meta-d instead of Meta-DEL.
Meta-t (transpose-words
) exchanges the word before or
containing point with the following word. The delimiter characters
between the words do not move. For example, transposing ‘FOO, BAR’ results in ‘BAR, FOO’ rather than ‘BAR FOO,’.
See Transpose, for more on transposition and on arguments to
transposition commands.
To operate on the next n words with an operation which applies
between point and mark, you can either set the mark at point and then move
over the words, or you can use the command Meta-@ (mark-word
)
which does not move point but sets the mark where Meta-f would move
to. It can be given arguments just like Meta-f.
The word commands’ understanding of syntax is completely controlled by the syntax table. For example, any character can be declared to be a word delimiter. See Syntax.