略語モードが有効な場合、ポイント直前のバッファに略語が存在し、かつ自己挿入型の空白文字や句読点文字(SPC、カンマなど)を入力すると、その略語が展開されます。より正確には、単語構成文字ではないあらゆる文字が略語を展開し、単語構成文字は略語の一部となり得ます。略語の最も一般的な使い方は、略語を挿入した後に句読点や空白文字を入力して展開することです。
略語展開では大文字・小文字が保持されます。‘foo’は‘find outer
otter’に、‘Foo’は‘Find outer
otter’に展開されます。‘FOO’はデフォルトでは‘Find Outer
Otter’に展開されますが、変数abbrev-all-capsをnil以外の値に変更すると、‘FIND OUTER
OTTER’に展開されます。
これらのコマンドは、略語展開の制御に使用されます:
接頭辞と、それに続く展開対象の略語を区切ります (abbrev-prefix-mark)。
ポイント (expand-abbrev) の前の略記を展開します。これは Abbrev
モードが有効でない場合でも機能します。
最後に展開された略語の展開を取り消す。
リージョン内で見つかった略語の一部またはすべてを展開します。
略語を展開し、その展開結果にプレフィックスを付加したい場合があります。例えば、‘cnst’が‘construction’に展開される場合、これを利用して‘reconstruction’と入力したいこともあるでしょう。recnstと入力しても機能しません。なぜなら、それが必ずしも定義済みの略語であるとは限らないからです。そこで有効な方法は、プレフィックス‘re’と略語‘cnst’の間に、コマンドM-' (abbrev-prefix-mark)を使用することです。まず、‘re’を挿入します。次にM-'と入力します。これにより、処理が完了したことを示すハイフンがバッファに挿入されます。続いて略語‘cnst’を挿入します。これでバッファには‘re-cnst’が含まれます。ここで、非単語文字を挿入して、略語‘cnst’を‘construction’に展開します。この展開ステップにより、M-'が使用されたことを示すハイフンも削除されます。その結果、目的の‘reconstruction’が得られます。
バッファ内に略語の展開結果ではなく、実際の文字列を格納したい場合は、C-q を用いて以下の句読点を挿入することで実現できます。したがって、foo C-q , は ‘foo,’ を展開せずにバッファに残します。
誤って略語を展開してしまった場合は、C-/ (undo) と入力することで展開を取り消すことができます。Undo
を参照してください。これにより、略語展開の挿入が取り消され、略語のテキストが元に戻ります。目的の結果が、終端の非単語文字と展開前の略語である場合は、終端文字を
C-q でクォートして再挿入する必要があります。また、コマンド M-x
unexpand-abbrev を使用すれば、終端文字を削除せずに直前の展開を取り消すこともできます。
M-x expand-region-abbrevs はリージョン内から定義済みの略語を検索し、見つかった略語ごとにその展開形への置換を提案します。このコマンドは、略語を使ってテキストを入力したものの、事前に略語モードを有効にし忘れた場合に便利です。また、特別な略語定義セットと組み合わせて、複数のグローバルな置換を一度に行う際にも有用です。このコマンドは、略語モードが有効になっていなくても動作します。
関数 expand-abbrev は、abbrev-expand-function
が指定する関数を呼び出すことで展開を行います。この関数を変更することで、略語展開を任意に変更できます。The
Emacs Lisp Reference Manual の Abbrev
Expansion を参照してください。