[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [Q] 日本語のabbreviation
- X-ml-count: 4006
- Subject: Re: [Q] 日本語のabbreviation
- From: Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx>
- Date: Mon, 19 Nov 2001 06:56:42 +0900
- User-agent: Wanderlust/2.6.0 (Twist And Shout) EMY/1.13.9 (Art is long, life is short) SLIM/1.14.7 (酒井彩名) APEL/10.3 Emacs/21.1 (i586-pc-linux-gnulibc1) MULE/5.0 (SAKAKI)
永野です。大昔のメールが検索で引っ掛かってきたのでここに繋げます。
At Mon, 07 Aug 2000 10:25:24 +0900 (JST),
Shun-ichi GOTO wrote:
> 後藤> 自分でも全く同じ希望を持っていましたので、
> 後藤> 現実逃避ついでにちょっとだけやってみました。
> 後藤> それなりに目的は達成できているようです。
>
> なんていっときながらダメダメだったので
> 根本的には変わってませんが、一応改訂しておきます
<>
> 基本的には単純にdabbrev-abbrev-char-regexp をすり替えるという
> だけのものですので、後は起動した時のカーソル周辺の様から
> regexp を作るマトモなcode は誰かお願いします
> 全然考慮してません
これ、本当に本当にずっと欲しいと思っていました。Mule 2.3 はこれっぽい
挙動をしていた(と思う)ので、余計に。
http://www.math.s.chiba-u.ac.jp/~matsu/emacs/emacs20.html#abbrev
に書いてある「Mule2.3@xxxxx の dabbrev」も試してみたのですが、これ、他
の buffer を探してくれないのです。それじゃイヤなんです。
で、後藤さんのコードはそのままでも完璧に使えるのですが、no defadvice &
category で書き直してみました。日本語と ASCII しか考慮していないのは同
じですが、どなたか自然言語に詳しい方が微調整してくだされば... そして本
家 dabbrev.el に組み込んでくだされば... (他力本願)
(defun dabbrev-expand-by-category (arg)
(interactive "*P")
(unless (bobp)
(let (ch ch-ca-set regexp)
(setq ch (char-before))
(setq ch-ca-set (char-category-set ch))
(setq regexp
(cond ((aref ch-ca-set ?a) "\\ca") ; ASCII
((aref ch-ca-set ?j) ; Japanese
(cond ((aref ch-ca-set ?K) "\\cK") ; katakana
((aref ch-ca-set ?A) "\\cA") ; 2byte alphanumeric
((aref ch-ca-set ?H) "\\cH") ; hiragana
;((aref ch-ca-set ?C) "\\cC") ; kanji
((aref ch-ca-set ?C) "\\cC+\\cH*") ; for okuri-gana
(t "\\cj"))) ; fool-proof
((aref ch-ca-set ?k) "\\ck") ; hankaku-kana
((aref ch-ca-set ?r) "\\cr") ; Japanese roman ?
;; etc.
(t dabbrev-abbrev-char-regexp))) ; save all
(let ((dabbrev-abbrev-char-regexp regexp))
(dabbrev-expand arg)))))
(global-set-key "\M-/" 'dabbrev-expand-by-category)
--
Keiichiro Nagano