Next: , Previous: Kill Errors, Up: Fixit


11.2 テキストの入れ替え

C-t
2つの文字を入れ替える(transpose-chars)。
M-t
2つの単語を入れ替える(transpose-words)。
C-M-t
釣り合っている2つの式を入れ替える(transpose-sexps)。
C-x C-t
2つの行を入れ替える(transpose-lines)。

2つの文字を入れ替えてしまうというよくあるまちがいは、 それらが隣接しているならば、 C-tコマンド(transpose-chars)で直せます。 通常、C-tは、ポイントの両側にある文字を入れ替えます。 行末では、行末の文字と改行文字を入れ替えるという役に立たない ことではなくて、C-tはその行の最後の2文字を入れ替えます。 よって、入れ替えまちがいにすぐに気づいたなら、 C-tだけで訂正できます。 まちがいにすぐに気づかなかったときには、 2つの入れ替わっている文字のあいだにカーソルを移動する必要があります。 空白とそのまえの単語の最後の文字とを入れ替えてしまったときには、 単語移動コマンドでその場所へ戻るのがよいでしょう。 それ以外の場合には、後向き探索(C-r)が最良であることがままあります。 See Search

M-ttranspose-words)は、 ポイントの直前の単語とポイントの直後の単語を入れ替えます。 ポイントは単語を1つ前向きに横断し、 ポイントの直前の単語かポイントを含む単語を前向きに引きずっていきます。 単語のあいだにある句読点文字は動きません。 たとえば、‘FOO, BARは‘BAR FOO,’ではなくて、 ‘BAR, FOOと入れ替わります。

C-M-ttranspose-sexps)は、2つの式(see Lists)を 入れ替えるコマンドです。 また、C-x C-ttranspose-lines)は、行を入れ替えます。 これらのコマンドはM-tに似た動作をしますが、 テキストを構文単位に分ける点が異なります。

入れ替えコマンドに数引数を指定すると、反復回数になります。 ポイントの直前やポイントを含む文字(単語、S式、行)を いくつ先の文字(単語、S式、行)へ移動するか指定します。 たとえば、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回繰り返しても何もしない)。 ポイントの直後の文字(単語、S式、行)と マークの直後の文字(単語、S式、行)を入れ替えます。