abbrevの使い方

■abbrevで使いそうな関数とか
自分が良く使うabbrev関係の関数(上から使用頻度高め順)

  • expand-abbrev [C-x '] :展開(補完)
  • expand-region-abbrevs :regionの範囲内の展開できる単語を全部展開
  • abbrev-prefix-mark :展開範囲の設定
  • edit-abbrevs :補完対象を編集する時
  • unexpand-abbrev :展開を元に戻す(undoでいいかも)
  • abbrev-mode :avvrevモードにする。(SPCでexpand-abbrevをする。ちょっと微妙だけど)
  • add-mode-abbrev [C-x C-a] :モードごとのabbrevに補完候補を追加。
  • add-global-abbrev [C-x +] :globalなabbrevに追加
  • inverse-add-mode-abbrev
  • inverse-add-global-abbrev [C-x -]

 大体Emacsと同じなのでEmacsのreferenceとかも参考になる。abbrev-prefix-markの話とか分かり難いのは読むと良いかも。
静的補完を補完するlispabbrev-complitionとかもある。

■補完候補を設定する。
 補完候補の設定にはedit-abbrevsかadd-mode-abbrevを使う。
add-mode-abbrev

  1. 補完したい候補regionで囲う
  2. C-x C-a
  3. 補完する前の文字を書く。

edit-abbrevs

  1. M-x edit-abbrevs
  2. 設定を書き加える
  3. C-x C-sで保存。

 edit-abbrevsの設定する書式が分からない時は、一度add-mode-abbrevを使って適当な補完の設定すれば、edit-abbrevsに設定されたものが出てくるので、それを真似して設定すればよい。一応例を書いてみると。
ex : lispモードでpoと入力した時に、expand-abbrevを実行すると(point)と補完される設定。途中の0はその展開の使用回数だとか

(editor::*lisp-mode-abbrev-table*)

"po"           0    "(point)"

edit-abbrevsで設定した後は、C-x C-sで普通に保存すれば良い。xyzzyを再起動した時に設定した補完候補が消えて、気に入らない場合はabbrevの設定を先にする。