次: , 前: Defining Abbrevs, 上: Abbrevs


22.3 略語展開の制御

ポイントの直前に略語があるときに白文字や区切り文字(<SPC>、コンマなど) を打鍵すると、略語はつねに展開されます。 より正確には、英単語の構成文字以外のどんな文字でも略語展開は起こり、 英単語の構成文字の任意の組み合わせを略語に使用できます。 略語の通常の使い方は、略語を入力してから区切り文字を入力して 展開を行わせるという方法です。

略語展開では大文字小文字を保存します。 したがって、 `foo'は`find outer otter'に、 `Foo'は`Find outer otter'に展開されます。 また、変数abbrev-all-capsに応じて、`FOO'は (変数の値がnil以外のときは) `FIND OUTER OTTER'、あるいは、`Find Outer Otter'に展開されます

以下は略語展開を制御するために使うコマンドです。

M-'
これまで入力した部分を これから入力する略語から分離する。
C-x a e
ポイントの直前の略語を展開する(expand-abbrev)。 このコマンドは略語(abbrev)モードがオンでなくても働く。
M-x expand-region-abbrevs
リージョン中のいくつかの、あるいはすべての略語を展開する。

接頭辞が付いた略語を展開したい場合もあるでしょう。 略語`cnst'は`construction'に展開されるとして、 `reconstruction'と入力するためにこの略語を使いたいとします。 `recnst'と打鍵してもだめです。 というのは、`recnst'は定義済みの略語ではないからです。 ではどうすればよいかというと、 接頭辞`re'と略語`cnst'のあいだでコマンドM-'abbrev-prefix-mark)を使うのです。 まず`re'と打ち込みます。 続いてM-'と打鍵します。 するとバッファにハイフン(-)が挿入され、切れ目が入ったことを示します。 それから略語`cnst'を入力します。 バッファには`re-cnst'と入っています。 ここで単語構成文字以外の文字を打ち込めば、 略語`cnst'が`construction'に展開されます。 展開時にはM-'が挿入したハイフン(-)は削除されます。 結果は、望みどおりの`reconstruction'です。

もし、略語を展開しないでそのまま残しておきたい場合には、 C-qに続けて区切り文字を入れます。 つまり、foo C-q ,とすると、バッファには`foo,'のまま残ります。

まちがって略語を展開してしまった場合には、 C-_(see Undo)と打鍵すれば、展開をアンドゥし略語に戻せます。 このとき略語展開を引き起こした区切り文字も削除されます。 略語を展開せずに区切り文字とともに入力したいならば、 区切り文字をC-qでクォートして挿入します。 区切り文字を削除せずに直前に展開したものを略語に戻すには、 コマンドM-x unexpand-abbrevを使うこともできます。

M-x expand-region-abbrevs は、リージョン全体にわたって定義済みの略語を 探し、みつかったそれぞれについてそれを展開するかを聞いてきます。 このコマンドは、略語(abbrev)モードをオンにし忘れて略語を用いた テキストを入力してしまったときに便利です。 あるいは、特別な略語定義一式を用いて 一度に全体を置き換えるときにも便利です。 このコマンドは略語(abbrev)モードがオンでなくても使えます。

略語を展開するときには、フックpre-abbrev-expand-hook (see Hooks)が実行されます。