[Anthy-dev 2934] Re: emacsからanthyでShift-Leftが効かない

アーカイブの一覧に戻る

Hideyuki SHIRAI ( 白井秀行 ) shira****@meado*****
2006年 5月 8日 (月) 19:53:14 JST


白井です。

# 田畑さん、詳しい解説ありがとうございます > 句読点

From: Masahiro YAMADA <mappy****@yahoo*****> さん曰く
Subject: [Anthy-dev 2931] emacsからanthyでShift-Leftが効かない
Message-ID: <20060****@yahoo*****>
Date: Mon, 08 May 2006 03:50:38 +0900 (JST)

> Webの「Emacsから」という説明書きのところに
> 
>  C-o または Shift-Right を押すと、カーソル位置の文節が 1 文字長くなります。
>  C-i または Shift-Left を押すと、カーソル位置の文節が 1 文字短くなります。
> 
> とあったのですが、
> 
> 変換中に、Shift-RightおよびShift-Leftを押しても
> ミニバッファーには wrong type argument: characterp, nil
> と表示されてしまいます。
> C-oとC-iはちゃんと文節の長さを変えられます。

X-Mailer を見ると、
X-Mailer: Mew version 3.3 on XEmacs 21.4.17 (Jumbo Shrimp)

とのことなので、丁度手元にあった XEmacs 21.4.17 でやってみました
が、同じエラーになりました。ちらっとコードを見たのですが、以下の
コードに shift left|right の条件を加えればよいのですが、XEmacs
はすでに全然わからない。けど、とりあえず、山勘でやったところ、

(defun anthy-last-command-char ()
  "最後の入力イベントを返す。XEmacs では int に変換する"
  (if anthy-xemacs
      (let ((event last-command-event))
	(cond
	 ((event-matches-key-specifier-p event 'left)      2)
	 ((event-matches-key-specifier-p event 'right)     6)
	 ((event-matches-key-specifier-p event '(shift left))  9)
	 ((event-matches-key-specifier-p event '(shift right)) 15)
	 ((event-matches-key-specifier-p event 'backspace) 8)
	 (t
	  (char-to-int (event-to-character event)))))
    last-command-char))

で良いようです。

# こういうときは、Emacs のバージョンとか書かないとわからない、と
# いうか相手に無駄な時間を使わせることになりますよ。
## 文字端末で shift が伝わっていないのかと思ったんだけど、それじゃ
## エラーにはならんよな、と無駄な時間を使ってしまいました ^^;;;

だけど、(各論あると思いますが)個人的には XEmacs ではなくて FSF
Emacs (Emacs21 とか Emacs22 とか)を使う方をお薦めします。

-- 
白井秀行 (mailto:shira****@meado*****)



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る