>>>> <199906170951.SAA03443(a)toshiba.co.jp> にて
>>>> “入内島”= IRIUCHIJIMA Ken / 入内島 健 <ken.iriuchijima(a)toshiba.co.jp>
さま曰く:
入内島> 四月から計算機環境が変わったのを機に、XEmacs 20.4 を使い始めまし
入内島> た。それまでは Emacs 19.28 / Mule 2.3 (SUETSUMUHANA) でした。
入内島> 一つ不便に思っているのは、日本語のテキスト (空白がない) での
入内島> forward-word / backward-word の動作です。
入内島> Mule 2.3 では平仮名と漢字の境界が word 境界であるかのように動い
入内島> てくれたので、ベタの日本文でも任意の場所に容易に M-f の連打など
入内島> でカーソルを持って行けたのですが、XEmacs ではそれができず、文字
入内島> 数を概算して
入内島> C-u 文字数 C-f
入内島> などしか思いつきません。何かもっと便利な方法があるんでしょうか?
これには私も困っていました。
これは多分 char-category の問題で直すのは大変だろうなあと思って長年(と
いっても 2,3 年ぐらいだけど)誰かが直してくれるのを待っていましたが
(^_^;;;、最近、実は char-category はちゃんと動いているということを知り、
なぜ動かないのか不思議だなあと思っていました。
そして、これを期に一念発起して source を読んでみました。そして衝撃の事実
を発見しました。
src/syntax.c に
/* Here is a comment from Ken'ichi HANDA <handa(a)etl.go.jp>
explaining the purpose of the Sextword syntax category:
Japanese words are not separated by spaces, which makes finding word
boundaries very difficult. Theoretically it's impossible without
using natural language processing techniques. But, by defining
pseudo-words as below (much simplified for letting you understand it
easily) for Japanese, we can have a convenient forward-word function
for Japanese.
A Japanese word is a sequence of characters that consists of
zero or more Kanji characters followed by zero or more
Hiragana characters.
Then, the problem is that now we can't say that a sequence of
word-constituents makes up a WORD. For instance, both Hiragana "A"
and Kanji "KAN" are word-constituents but the sequence of these two
letters can't be a single word.
So, we introduced Sextword for Japanese letters. A character of
Sextword is a word-constituent but a word boundary may exist between
two such characters. */
という仮想文節の説明の後に
/* Mule 2.4 doesn't seem to have Sextword - I'm removing it -- mrb */
という comment があるではないですか!!! 「マーティンの馬鹿野郎〜」と思わ
ず心の中で叫びました。(^_^;;;
比較的最近の変更なら CVS を漁れば良いんですが、おそらくこれは 20.0 の時
代に行われたことだと思います。
;; この時代だと本当に char-category がまともに動いていなかったのかも知れ
;; ません。先史時代なので、まともな記録が残っていないため、何とも言えな
;; いですが。
そういう訳で、Emacs 20.3.10 の source を参考にこの機能を『復活』させまし
た。
以下は、XEmacs 21.2 を元に開発されましたが、多分、現在の正式版の最新版で
ある XEmacs 21.1 系列にも適用可能であると思います:
--
===『幾千億の分子に分かれても ========================================
決して忘れない。
この宇宙が終るまで』 守岡 知彦 (MORIOKA Tomohiko)
======================================== Email: <tomo(a)etl.go.jp> =====
;; PGP public key:
http://www.etl.go.jp/~tomo/hiko/pgp.key