前述の略語機能は、テキストを挿入すると自動的に動作しますが、すべての略語は明示的に定義しておく必要があります。これに対し、動的略語では、バッファの内容から略語の意味を自動的に決定できますが、動的略語の展開は明示的に要求した場合にのみ行われます。
ポイント前のバッファ内の単語を、その略語で始まる単語(dabbrev-expand)を検索することで動的略語として展開します。
point の前の単語を動的な略語 (dabbrev-completion)
として補完してください。
For example, if the buffer contains ‘does this
follow ’ and you type f o M-/, the
effect is to insert ‘follow’ because
that is the last word in the buffer that starts with ‘fo’. A numeric argument to M-/ says to take the second, third, etc. distinct
expansion found looking backward from point. Repeating M-/ searches for an alternative expansion by looking
farther back. After scanning all the text before point, it searches the
text after point. The variable dabbrev-limit, if
non-nil, specifies how far away in the buffer to
search for an expansion.
現在のバッファをスキャンした後、M-/ は通常、他のバッファを検索します。変数 dabbrev-check-all-buffers および dabbrev-check-other-buffers
を使用して、他にどのバッファを検索するか(もしあれば)を指定できます。dabbrev-ignored-buffer-modes
のいずれかのモードから派生したメジャーモードを持つバッファは無視されます。
スキャン対象のバッファをより細かく制御するには、変数 dabbrev-ignored-buffer-names と dabbrev-ignored-buffer-regexps
をカスタマイズしてください。前者の値は、スキップするバッファ名のリストです。後者の値は正規表現のリストであり、バッファ名がこれらの正規表現のいずれかに一致した場合、動的略記展開はそのバッファをスキップします。
M-/ に対する負の引数(C-u - M-/ など)は、まずポイント以降の展開を検索し、次に他のバッファを検索し、ポイント以前の展開は最終手段としてのみ検討することを指定します。別の展開を探すために M-/ を繰り返す場合は、引数を指定しないでください。M-/ を繰り返すと、ポイント以降のすべての展開と、その後ポイント以前の展開を順に巡回します。
動的略語を展開した後、その展開に続く追加の単語を元の文脈のままコピーできます。コピーしたい追加単語ごとに SPC M-/ と入力するだけです。単語間のスペースや句読点も、単語と一緒にコピーされます。
M-/ が展開する単語をどのように決定し、どのように展開するかを制御できます。詳細は 動的略語のカスタマイズ を参照してください。
コマンド C-M-/ (dabbrev-completion)
は、動的略語の補完を行います。考えられる展開候補を一つずつ試すのではなく、すべての候補を特定し、それらに共通するテキストを挿入します。共通する部分がない場合は、C-M-/ が補完候補の一覧を表示し、そこから通常の方法で選択できます。Completion を参照してください。
動的略語展開は略語モードとは完全に独立しており、M-/ による単語の展開は、それが通常の略語として定義されているかどうかとは完全に無関係です。