GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Dabbrev-Customization.html ・ emacs-doc.conao3.com

31.8 動的略語のカスタマイズ

通常、動的な略語展開では、展開候補の検索時に大文字・小文字は区別されません。つまり、展開後の文字列は、展開元の単語と大文字・小文字が一致している必要はありません。

この機能は変数 dabbrev-case-fold-search によって制御されます。値が t の場合、この検索では大文字小文字が区別されません。値が nil の場合、単語と展開結果は大文字小文字が一致している必要があります。値が case-fold-search(デフォルト)の場合、変数 case-fold-search によって展開結果の検索時に大文字小文字を区別するかどうかが制御されます(検索時の緩いマッチング を参照)。

通常、動的略語展開では、展開結果をその大文字・小文字パターンに変換することで、展開対象の動的略語の大文字・小文字パターンを保持します。

変数 dabbrev-case-replace は、動的略記の大文字・小文字パターンを保持するかどうかを制御します。値が t の場合、ほとんどの場合で動的略記の大文字・小文字パターンが保持されます。値が nil の場合、展開内容は常にそのままコピーされます。値が case-replace(デフォルト)の場合、変数 case-replace が展開内容をそのままコピーするかどうかを制御します(置換コマンドと緩いマッチ を参照)。

ただし、展開内容に複雑な大文字・小文字の混在パターンが含まれており、動的な略記が可能な限りそのパターンに一致する場合、それらの変数に関わらず、展開内容は常にそのままコピーされます。したがって、例えばバッファに variableWithSillyCasePattern が含まれており、v a M-/ と入力した場合、大文字・小文字のパターンも含めて展開内容がそのままコピーされます。

変数 dabbrev-abbrev-char-regexp は、nil でない場合、動的展開においてどの文字を単語の一部とみなすかを制御します。正規表現は単一の文字にのみ一致しなければならず、2文字以上に一致してはなりません。また、同じ正規表現が、どの文字を展開の一部とするかも決定します。(デフォルトの)値 nil には特別な意味があります。動的な略語(すなわちカーソル位置にある単語)は単語文字で構成されますが、その展開は単語文字と記号文字のシーケンスとして検索されます。これは一般的に、プログラムソース内の記号の展開や、多くの言語における人間が読めるテキストに適していますが、特殊な句読点文字を含むテキストバッファでは意図した結果にならない場合があります。その場合は、値 "\\sw" の方がより良い結果を得られる可能性があります。

シェルスクリプトやmakefileでは、変数名の先頭に ‘$’ が付く場合と付かない場合があります。この種のテキスト向けのメジャーモードでは、変数 dabbrev-abbrev-skip-leading-regexp を設定することで、動的略記展開をカスタマイズし、省略可能な接頭辞を扱えるようにできます。その値には、動的略記式が無視すべき省略可能な接頭辞に一致する正規表現を指定します。デフォルトは nil で、これは文字を一切スキップしないことを意味します。