略語を追加するとき
("s:", "std::")
上下の他の省略形が機能している間は機能しません。
構文に何か問題がありますか? どうすればこれを機能させることができますか?
ring0 が説明しているように、デフォルトでは略語は「単語の構成要素」であり、「:」が単語の構成要素ではない文字で構成されている場合にのみ機能するため、機能しません。このルールは、特定のテーブルに対して(abbrev-table-put <table> :regexp "\\<\\(\\w+:?\\)\\W*")
、正規表現"\\<\\(\\w+:?\\)\\W*"
がデフォルトの動作をほぼ再現するようなもので変更できます。
文字:
は、スペースとともに、(Emacs の定義によると)単語?
の一部とは見なされず、その前に入力された単語が省略形であり、展開する必要があるかどうかを検出するabbrevメカニズムをトリガーします ( Word の使用略語)。:
したがって、s:
略語が定義されている間に、:
の
s:
Emacss
に略語としての検索をトリガーさせます。つまり、句読点を含む略語は展開できません。
より簡単な解決策は、たとえば、数字と文字を選択することです
8s or s8
--
略語検索をトリガーする文字を識別する正規表現がありますが、動的な略語に対してのみ機能します。
backward-wordの動作を変更しようとしましたが、最近のバージョンの Emacs では、backward-word (abbrev) をキャプチャするためにも使用されていません。