通常 C-t は transpose-chars というコマンドにバインドされていて、これは前後の二文字を入れ替えます。文字を入れ替えるタイプミスをしてしまった場合、C-t で修正する人は相当 Emacs を使い込んでいる人です。
一連の transpose コマンドには以下のものがあります。
- C-t (transpose-chars)
- M-t (transpose-words)
- C-x C-t (transpose-lines)
- M-x transpose-sexps
- M-x transpose-sentences
- M-x transpose-paragraphs
更に org-mode を使っていれば
- C-M-t (org-transpose-element)
コマンド名を見ればだいたい意味は分かると思われますが、いくつか注意点があります。
Emacs ではカーソル位置の事をポイントと呼びます。大抵の場合、一般的なカーソル位置と同じ意味に捉えて問題ありませんが、厳密に言うとポイントは文字の上ではなく、文字と文字の間にあると考えます。つまりカーソル位置の文字とその前の文字との間にポイントがあります。
C-t (transpose-chars) は「ポイント位置の前後の文字を入れ替える」と定義されています。カーソル位置と考えると訳が分からなくなります。一般的な概念で言うと、カーソル位置とその前の文字を入れ替える、という意味になります。
M-t (transpose-words) はワードを入れ替えるコマンドですが、注意が必要です。以下の例を見て下さい。
one two three ===> one と two を入れ替え ^ one two three ===> two と three を入れ替え ^カーソル位置がワードの先頭にあるかそれ以外の所にあるかで動作が異なります。
上の点さえ抑えておけば、それ以外はだいたい想像通りに動くと思います。
transpose-sexps は s-式(Symbolic Expression)を入れ替えるコマンドです。s-式は Elisp のコードを書く人にはお馴染みですが、それ以外のプログラミング言語にも適用される概念です。
transpose-sentences はセンテンス(文)を入れ替ええます。日本語の文章でもちゃんと機能します。(但し、句点で区切られたまともな日本語を書いていればですが。)
上に紹介した最初の三つ以外はキーバインドが無いので、長いコマンド名を入力しなくてなりません。(helmを使えばキータイプ数はかなり節約できますが。) そのせいもあり、使っている人はほとんどいないでしょう。存在すら知らない人が多いと思います。人前でこれらのコマンドを使えば、驚かれること間違いなしでしょう。
他のエディタの事はよく知りませんが、こんなコマンドが存在するのは Emacs ならではだと思います。これらのコマンドを使いこなして Emacs のマニア度を高めましょう。
0 件のコメント :
コメントを投稿