dabbrev-abbrev-ch-regexpでググったら出てきた.
さくらインターネットのSSH接続で、Emacs+ruby-modeを使う - itouhiroメモここを参考に,ちょっといじって,コメントも追加した
;; http://d.hatena.ne.jp/itouhiro/20091122 (defadvice dabbrev-expand (around jword (arg) activate) (interactive "*P") (let* ((regexp dabbrev-abbrev-char-regexp) (dabbrev-abbrev-char-regexp regexp) char ch) (if (bobp) () (setq char (char-before) ch (char-to-string char)) (cond ;; ァ〜ヶの文字にマッチしてる時はァ〜ヶが単語構成文字とする ((string-match "[ァ-ヶー]" ch) (setq dabbrev-abbrev-char-regexp "[ァ-ヶー]")) ((string-match "[ぁ-んー]" ch) (setq dabbrev-abbrev-char-regexp "[ぁ-んー]")) ((string-match "[亜-瑤]" ch) (setq dabbrev-abbrev-char-regexp "[亜-瑤]")) ;; 英数字にマッチしたら英数字とハイフン(-)を単語構成文字とする ((string-match "[A-Za-z0-9]" ch) ;; (setq dabbrev-abbrev-char-regexp "[A-Za-z0-9]")) (setq dabbrev-abbrev-char-regexp "[A-Za-z0-9-]")) ; modified by peccu ((eq (char-charset char) 'japanese-jisx0208) (setq dabbrev-abbrev-char-regexp (concat "[" (char-to-string (make-char 'japanese-jisx0208 48 33)) "-" (char-to-string (make-char 'japanese-jisx0208 126 126)) "]"))))) ad-do-it))
そのままやとasync-evalみたいな関数名を補完できなかったのでregexpに-を追加した.(この文打ってる時にも補完できてなんか感動)
また不具合があれば調べて書いていくつもり
[追記] 出典を見つけた.
[http://www.ysnb.net/meadow/meadow-users-jp/2000/msg00787.html:title=Re: [Q] 日本語のabbreviation],[http://www.ysnb.net/meadow/meadow-users-jp/2000/msg00788.html:title=Re: [Q] 日本語のabbreviation].後者が改訂版のようです.ってかad-do-it忘れてたのかな
メーリングリスト面白そうだな.読んでるだけで
対応する括弧への移動(M-C-n,M-C-p)とか出てきてよかった.調べようと思いながら放置してたからな.