Next: , Previous: Defining Abbrevs, Up: 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)が実行されます。