[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [Q] 日本語のabbreviation



## 相変わらず仕事中。。。

>>>>> at Sat, 05 Aug 2000 17:36:41 +0900
>>>>> niso == ISO Naoyuki <niso@xxxxxxxxx> said,

niso>   ニラ炒めにニンニクを加えると、うまさ倍増。▲

niso> ▲のところで、"ニ"に続きM-/ すると、"ニンニク" 次に "ニラ" が展開され
niso> るようなモノをどなたか作っていないだろうか、と思っているのです。
niso> ご存知ないでしょうか?

自分でも全く同じ希望を持っていましたので、
現実逃避ついでにちょっとだけやってみました。
それなりに目的は達成できているようです。

;; japanese word specific dabbrev
(defadvice dabbrev-expand (before 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 "[A-Z-a-z0-9]" ch)
	(setq dabbrev-abbrev-char-regexp "[A-Za-z0-9]"))
       ((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))
		      "]")))))))


カーソルの直前の文字がナニであるかによって、
平仮名は平仮名、カタカナはカタカナ、英字は英字、漢字は漢字 だけで
構成されるword を探すというもの。


niso> skk.elのコードを参考にして、abbrev.el をハックすれば、なんとか作れるよ
niso> うな気もするのですが...

上記のcode は条件判断の辺りも含め、かなりテキトーなので
誰か素敵にしてくれるとうれしい。

--- Regards,
 Shun-ichi Goto  <gotoh@xxxxxxxxxxx>
   R&D Group, TAIYO Corp., Tokyo, JAPAN