前: Dynamic Abbrevs, 上: Abbrevs
通常、動的略語展開では大文字小文字を区別しないで候補を探します。 つまり、展開候補と略語の大文字小文字が一致する必要はありません。
この機能は変数dabbrev-case-fold-search
で制御できます。
値がt
のときは、候補を探すときに大文字小文字を区別しません。
値がnil
のときは、候補と略語の大文字小文字が一致する必要があります。
変数dabbrev-case-fold-search
の値は、
デフォルトでは真であるcase-fold-search
です。
したがって、変数case-fold-search
が
展開候補を探すときの大文字小文字の区別を制御します。
通常、動的略語展開は打ち込んだ略語の大文字小文字のパターンを保存します。 つまり、略語の大文字小文字のパターンに合うように 展開形の大文字小文字を変換します。
変数dabbrev-case-replace
は、略語の大文字小文字のパターンを
保存するかどうかを制御します。
値がt
のときは、たいていの場合、パターンを保存します。
nil
のときは、つねに展開形をそのままコピーします。
dabbrev-case-replace
の値は、
デフォルトでは真であるcase-replace
です。
したがって、変数case-replace
が
展開形をそのままコピーするかどうかを制御します。
しかしながら、展開形の大文字小文字のパターンが複雑であるとき、
略語の始めから終りまでがそのパターンに一致する場合、
これらの変数に関わらず展開形をそのままコピーします。
たとえば、バッファにvariableWithSillyCasePattern
とあって
v a M-/と打鍵すると、
大文字小文字のパターンを含め展開形をそのままコピーします。
変数dabbrev-abbrev-char-regexp
がnil
以外の場合、
動的展開においてどんな文字を単語構成文字とみなすかを制御します。
これに指定する正規表現は1文字のみに一致するものである必要があり、
2文字以上に一致してはいけません。
同じ正規表現は、どの文字が展開形を構成するかも指定します。
値としてnil
を指定すると特別な意味があり、
略語は単語の構成文字だけから成り、
展開形は単語と記号文字から成るという意味になります。
シェルスクリプトやmakefileなどでは、
変数名には接頭辞`$'があったりなかったりします。
これらのテキスト用のメジャーモードでは、
変数dabbrev-abbrev-skip-leading-regexp
を設定して
余分な接頭辞を扱えるように動的展開をカスタマイズできます。
この変数には、動的略語展開で無視すべき余分な接頭辞に一致する
正規表現を指定します。