GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html ・ emacs-doc.conao3.com

18.2 テキストの転置

C-t

2文字を転置する (transpose-chars)。

M-t

2つの単語を転置する (transpose-words)。

C-M-t

2つのバランスの取れた式 (transpose-sexps) を転置する。

C-x C-t

2行を転置する (transpose-lines)。

M-x transpose-sentences

2つの文を転置する (transpose-sentences)。

M-x transpose-paragraphs

2つの段落を転置する (transpose-paragraphs)。

M-x transpose-regions

2つの領域を転置する。

よくある編集ミスの一つに、文字や単語、文を誤った順序で入力してしまうことが挙げられます。これを修正するには、誤って入力したテキストを削除して打ち直すか、あるいは位置が間違っているテキストをキル(テキストの消去を参照)し、正しい位置にヤンク(ヤンクを参照)するという方法があります。しかし、これは非効率的です。Emacsには、文字、単語、文などを入れ替えるための便利なコマンドが用意されており、本節で解説します。

2つの文字を入れ替えてしまうというよくあるミスは、それらが隣接している場合、C-t コマンド(transpose-chars)で修正できます。通常、C-t はポイントの両側にある2つの文字を入れ替えます。行の末尾でこのコマンドを入力した場合、行の最後の文字を改行と入れ替える(これでは意味がありません)のではなく、C-t は行の最後の2つの文字を入れ替えます。したがって、入れ替えミスにすぐ気づけば、C-t だけで修正できます。すぐに気づけなかった場合は、C-t を入力する前に、カーソルを入れ替えられた2つの文字の間まで戻す必要があります。スペースをその前の単語の最後の文字と入れ替えてしまった場合は、単語移動コマンド(M-f、M-b など)を使うのが有効な方法です。それ以外の場合は、逆方向検索(C-r)が最善の方法となることが多いです。検索と置換を参照してください。

M-t は、ポイント前の単語とポイント後の単語(transpose-words)を入れ替えます。ポイントを単語の前方へ移動させ、ポイントに先行する、あるいはポイントを含む単語も併せて前方へドラッグします。単語間の句読点は移動しません。例えば、‘FOO, BAR’ は ‘BAR FOO,’ ではなく、‘BAR, FOO’ へと入れ替わります。ポイントが行末にある場合、ポイント前の単語と次行の最初の単語が入れ替わります。

C-M-t (transpose-sexps) は2つの式を転置するための同様のコマンドであり(バランスの取れた括弧を持つ式を参照)、C-x C-t (transpose-lines) は行を入れ替えます。M-x transpose-sentences と M-x transpose-paragraphs は、それぞれ文と段落を転置します。これらのコマンドは、転置するテキスト単位を除けば、M-t と同様に動作します。

転置コマンドの数値引数は繰り返し回数として機能します。これにより、転置コマンドはポイントの前にある文字(または単語、式、行)を、他の複数の文字(または単語、式、行)にわたって移動させます。例えば、C-u 3 C-t はポイントの前にある文字を、他の3つの文字にわたって前方に移動させます。これにより、‘f∗oobar’ は ‘oobf∗ar’ に変わります。これは C-t を3回繰り返すのと同等です。C-u - 4 M-t はポイントの前にある単語を、4つの単語にわたって後方に移動させます。C-u - C-M-t は、単純な C-M-t の効果を打ち消します。

数値引数に 0 を指定すると、特別な意味を持ちます(そうしないと、繰り返し回数が 0 のコマンドは何も行わないためです)。これは、ポイントの後で終わる文字(または単語、式、行)を、マークの後で終わる文字と転置させるというものです。したがって、例えば ‘Bob and Mary’ を ‘Mary and Bob’ に変換するには、‘Bob’ にマークを設定し(マークの設定を参照)、次にポイントを ‘Mary’ に移動させ、最後に C-u 0 M-t と入力します。

M-x transpose-regions は、ポイントとマークの間のテキストを、直近の2つのマークの間のテキストと入れ替え、後者をマークリングの後方へ押し出します(マークの設定を参照)。数値のプレフィックス引数を指定すると、ポイントとマークの間のテキストを、マークリング上でその数だけ遡った位置にある連続する2つのマークの間のテキストと入れ替えます。このコマンドは、複数の文字(あるいは単語、文、段落)を一度に入れ替える場合に最適です。