Emacsでは、単語の移動や操作を行うためのコマンドがいくつか定義されています:
単語 (forward-word) をまたいで進む。
単語を遡る (backward-word)。
単語の末尾まで削除 (kill-word)。
単語の先頭まで遡って削除する (backward-kill-word)。
次の単語の末尾にマークを付ける (mark-word)。
2つの単語を入れ替えるか、単語を他の単語の上にドラッグします (transpose-words)。
Notice how these keys form a series that parallels the character-based C-f, C-b, C-d, DEL and C-t. M-@ is cognate to C-@, which is an alias for C-SPC.
コマンド M-f (forward-word) および
M-b (backward-word)
は、単語単位で前後に移動します。これらの Meta
ベースのキーシーケンスは、単一文字単位で移動するキーシーケンス C-f および C-b に相当します。この対応関係は、繰り返し回数として機能する数値引数にも及びます。負の引数を指定した M-f は後方に移動し、負の引数を指定した M-b
は前方に移動します。前方への移動は単語の最後の文字の直後で停止し、後方への移動は最初の文字の直前で停止します。
M-d (kill-word) は、point
以降の単語を削除します。正確には、point から M-f
が移動する位置までのすべてを削除します。したがって、point が単語の途中にある場合、M-d は
point 以降の部分のみを削除します。point
と次の単語の間に句読点がある場合、その句読点も単語と共に削除されます。(次の単語のみを削除し、その前にある句読点は削除したくない場合は、単純に M-f で末尾を取得し、M-DEL で単語を逆順に削除してください。)M-d は
M-f と同様に引数を取ります。
M-DEL (backward-kill-word) は、point より前の単語を削除します。また、point から
M-b が移動する位置までのすべてを削除します。例えば、point が ‘FOO, BAR’ のスペースの後にある場合、‘FOO, ’ が削除されます。カンマやスペースではなく、‘FOO’ だけを削除したい場合は、M-DEL の代わりに M-b M-d を使用してください。
M-t (transpose-words)
は、ハイフンの前またはハイフンを含む単語を、次の単語と入れ替えます。単語間の区切り文字は移動しません。例えば、‘FOO, BAR’ は ‘BAR FOO,’ ではなく、‘BAR, FOO’ へと転置されます。転置の詳細については、テキストの転置を参照してください。
領域に対して作用する操作を単語に適用するには、コマンド M-@ (mark-word) を使用します。このコマンドは、M-f
が移動する位置にマークを設定します。このコマンドの詳細については、テキストオブジェクトにマークを付けるコマンドを参照してください。
「単語」の語境界に関する解釈は、構文テーブルによって制御されます。例えば、任意の文字を単語区切り文字として指定することが可能です。The Emacs Lisp Reference Manualの構文テーブルを参照してください。
さらに、リージョンまたはバッファ内の単語数をカウントして報告する M-= (count-words-region) および M-x
count-words コマンドについては、カーソル位置情報 を参照してください。