emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems on inline input on Mac


From: YAMAMOTO Mitsuharu
Subject: Re: problems on inline input on Mac
Date: Fri, 28 Jul 2006 15:52:34 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

山本様、

千葉大学の山本です。

>>>>> On Fri, 28 Jul 2006 14:19:03 +0900, YAMAMOTO Mitsuharu <address@hidden> 
>>>>> said:

> I've made some email exchanges with Hashimoto-san (the author of
> "inline-patch") on the above issues in Japanese.  I will send you
> some of them if he agrees.

この件について、橋本さんから同意が得られましたので、関連する部分を送付
致します。

#すみません。まとめられるといいのですが、今はちょっとその気力がありま
#せん。さらに英語で、となると…。

                                        山本 光晴
                                address@hidden

To: address@hidden
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Mon, 29 May 2006 23:54:30 +0900 (JST)

>>>>> On Mon, 29 May 2006 22:59:37 +0900, 橋本 泰一 <address@hidden> said:

> 希望: 1. Emacs の Input Method との連携mode-line での状態の表示や
> toggle-input-method での IM の切り替えを可能にしてほしい.同時に自動
> 的に IM と状態の同期を とってほしい.僕は,XTread_socket のループで毎
> 回チェックして,同期を とるようにしています.

> 2. isearch での入力1. の Emacs の Input Method が起動すれば,
> isearch- x を使って入力できるようになると思います.

> 3. 条件によって,入力を Input Method に渡さないように制御 してほしい.
> ことえりでは,"C-SPC" で全角空白が入力されます.このよ うにシステムに
> 渡したくないショートカットを設定できるようになるといいと思 います.ま
> た,C-x の入力後の入力やread-passwd時も無視して ほしいですね.

2の isearch は確かにそのままではうまくいきませんね。調べてみます。

1と3についてですが、希望は分かるのですけれども、「あるキー入力イベント
を Lisp 側で処理する時点での Lisp interpreter の状態」を、
XTread_socket の時点で知ることは原理的に不可能です。橋本さんのインライ
ンパッチでは mac_pass_key_to_system でそのようなことをされていますが、
Lisp 側で処理をしている最中にキー入力が連続してやってくると矛盾が起こる
可能性があります。もしそれを真面目に対処しようとすると、生のキーイベン
トに近いもの(EventRefが再現できるもの)を Lisp 側に渡し、そちらで現在
XTread_socket でやっているような処理を行うということになります。すなわ
ち、input method を (XTread_socketから見てではなく) Lisp 側から見て完全
にバックエンドにするわけです。しかし、この方法は現状のコードに対して大
きな設計変更が必要な上に、他のプラットフォームでの入力イベント処理と全
く異なる形のイベント処理になるため、リリースが近づいている現状ではでき
ません。想像するに C-g の処理は十分に気をつけて設計しないといけなくなる
でしょう。このようなことを考えて、この手の機能はすっぱり諦めました。

また、今は付加的な機能はとりあえず置いておいて、まずは足元をきっちり固
めることに注力しようと思っています。


To: 橋本 泰一 <address@hidden>
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Tue, 30 May 2006 17:49:48 +0900

>>>>> On Tue, 30 May 2006 10:21:21 +0900, 橋本 泰一 <address@hidden> said:

> このあたりは,僕も頭を悩ませて,アドホックな解決をしています.何 かよ
> い解決方法があればよいのですが.

大幅な変更をしない限りは、どこかに無理が出てくると思います。おそらくこ
ういうことではないでしょうか。橋本さんは Emacs の Input Method に対応す
るようなものを望んでいるが、それを自然に達成するには大幅な設計の変更が
伴う。私が今作っているものはいわば X11版 の XIM サポートに対応するよう
なもので、そのレベルであればコードの変更が少なくて済む。大幅に変更せず
に前者を目指そうとするとどこかで不自然なことをしなければならない。

現在の状況を考えると、当座はコードの変更を少なくして後者を目指すという
のは悪くない選択肢だと思います。前者は例えば address@hidden あたりで
他のプラットフォームとの連携もとりながら、じっくりやっていくという手も
あるのではないでしょうか。ただ、その頃には Cocoa版が Carbon版に取って代
わっている可能性もありますが。:-)


To: 橋本 泰一 <address@hidden>
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Wed, 31 May 2006 10:36:03 +0900

>>>>> On Wed, 31 May 2006 10:01:17 +0900, 橋本 泰一 <address@hidden> said:

>> 現在の状況を考えると、当座はコードの変更を少なくして後者を目指 すと
>> いうのは悪くない選択肢だと思います。前者は例えば mule- address@hidden
>> あたりで他のプラットフォームとの連携もとりながら、じっくりやっていく
>> と いう手もあるのではないでしょうか。ただ、その頃には Cocoa版が
>> Carbon版に取って代わっている可能性もありますが。:-)

> その意見に多いに賛成です.しかし,現段階ではユーザから見れば多少 不満
> が残るものになってしまうかもしれません.そこで,今作成している山本さ
> ん のものをベースに,僕の改良を加えるような形で Unofficial なパッチを
> 配 布しても構いませんか?あくまでつなぎということ意味です.

はい、実は現実的にはそうなるのが望ましいのだろうなと思っていました。私
も頑固なので :-) 原理原則はできるだけ崩したくありませんし、根本的でない
解決法を本家に入れてしまうと、例えばヨーロッパ圏での使用で思わぬ不具合
が出てしまう可能性があります。しかし、たとえあらゆる場合で完璧ではない
としても、通常の使用で問題がなければそちらの方がいいというユーザも多い
ことでしょう。そのような断り書きを付けて、ユーザにはそのことを納得して
もらった上で使用してもらうのがいいのではないかと思います。

>> 前回のものからの差分の形でパッチを添付します。ちょっと小細工を して
>> isearch のときなどは overlay を使わずに直接エコーエリア に未確定文字
>> 列を表示するようにしました。その場合の候補ウィンドウの位置調整はま
>> だです。やろうと思えばできますが、どうやるのがきれいかをちょっと考え
>> て からにします。

> 僕は,isearch-edit-string で current-buffer を mini- buffer に移して
> います.その方が,カーソルの移動など都合が良かったように記憶していま
> す.  参考になれば幸いです.

これも日本語をメインに使う場合は便利だと思いますが、ヨーロッパ圏などで
アクセント付きの文字を入力する場合などは編集を経ずにすぐに検索に入って
欲しいのではないかと思います。私としては今回はあくまで入力イベントの変
換だけをフロントエンド的に行うということを原則として、その他の部分には
できるだけ手を加えないようにしたいと考えています。もちろん Unofficial
なパッチでそのような機能を付けていただくことは構いません。


To: 橋本 泰一 <address@hidden>
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Wed, 07 Jun 2006 09:24:52 +0900

>>>>> On Tue, 6 Jun 2006 18:25:37 +0900, 橋本 泰一 <address@hidden> said:

> Mew で,Subject: に入力するときに変換時には色がつかず,確 定後に色が
> つくようです.Goby という Emacs Lisp パッケージでも,文字の大きさが変
> 換 時に引き継がれないようです.

未確定文字列の表示に overlay の before-string プロパティを使っているの
ですが、これはマーカーの直後の face を継承するようです。マーカーの前後
のどちらの face を延長したいかは一般には分かりませんので、あらゆる場合
に期待した動作をさせるというのはできないと思います。ただし、Mew に関し
て言えば、(3.3 で試した限りは) highlight 用の overlay を前後の空白や改
行文字にまで延長することによって対応できるようです。

--- mew-highlight.el~   2004-10-26 16:52:55.000000000 +0900
+++ mew-highlight.el    2006-06-07 08:34:06.000000000 +0900
@@ -88,7 +88,7 @@
                 (forward-line)
               (setq key (mew-match-string 1))
               (setq beg (match-beginning 0))
-              (setq med (match-end 0))
+              (setq med (match-end 1))
               (forward-line)
               (setq nspec (mew-nspec-by-key key))
               (setq key-face (or (mew-nspec-keyface nspec)
@@ -97,11 +97,11 @@
                                  'mew-face-header-marginal))
               (setq overlay (mew-overlay-make beg med))
               (overlay-put overlay 'face key-face)
-              (setq overlay (mew-overlay-make med (1- (point))))
+              (setq overlay (mew-overlay-make med (point)))
               (overlay-put overlay 'face val-face)
               (while (looking-at mew-lwsp+)
                 (forward-line)
-                (setq overlay (mew-overlay-make (match-end 0) (1- (point))))
+                (setq overlay (mew-overlay-make (match-end 1) (point)))
                 (overlay-put overlay 'face val-face))))))))))


To: 橋本 泰一 <address@hidden>
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Fri, 09 Jun 2006 12:10:17 +0900

>>>>> On Fri, 9 Jun 2006 11:56:41 +0900, 橋本 泰一 <address@hidden> said:

> スクリプト変更のパッチは快調です.

ありがとうございます。ちょっと突発的な締切が入ってきたのですぐには対応
できないかもしれませんが、CVS への commit を考えたいと思います。

ただ、emacs-devel へメールを出した後、RMS から「これは Mac での Emacs
を GNU システムでのそれよりも使いやすくするものではあるまいな」(表現は
ちょっと違いますが)というようなメールが来ましたので、あまり派手に機能追
加はできません。一応「これは X11 で言うと XIM サポートに対応するものだ
から」と言ったら納得してくれましたので、その意味でも XIM に対応する位置
付けのものとして作っておいたのは正解だったと思います。

> 個人的な興味なのですが,before-string を選択した使っている のはなぜで
> すか?

XIM に対応するものであるとすると、確定前にバッファの内容を変更しないよ
うにするのが自然だからです。undo や read-only, キーボードマクロのことな
どのことを考えても妥当な選択だと思います。


To: 橋本 泰一 <address@hidden>
Subject: Re: TSM support on Carbon Emacs
From: YAMAMOTO Mitsuharu <address@hidden>
Date: Fri, 09 Jun 2006 12:15:44 +0900

>>>>> On Fri, 09 Jun 2006 12:10:17 +0900, YAMAMOTO Mitsuharu <address@hidden> 
>>>>> said:

> undo や read-only, キーボードマクロのことなどのことを考えても妥当な選
> 択だと思います。

すみません。キーボードマクロの話はこの件とは別だったかもしれません。




reply via email to

[Prev in Thread] Current Thread [Next in Thread]