oishi
oishi****@cam*****
2011年 7月 10日 (日) 06:44:07 JST
大石です。 長文で失礼します。 On Sun, 10 Jul 2011 01:42:56 +0900 Kazuhiro Fujieda <fujie****@users*****> wrote: > この機能はどうされるつもりだったのでしょうか?>大石さん 4 年半前のことで全く記憶にないのですが、 下記のメールの内容が参考になるかと思います。 === メール添付 ここから === ----------------------- Original Message ----------------------- From: oishi <oishi****@cam*****> To: xkeym****@freem***** Cc: oishi****@cam***** Date: Fri, 06 Jan 2006 07:50:17 +0900 Subject: [xkeymacs:1525] 特定のウィンドウのみ独自の設定を使用する方法 ---- こんにちは、大石です。 以前、あるアプリケーションでウィンドウのタイトルに 特定の文字列を含むときだけ、異なる設定を適用したいという話がありましたが、 XKeymacs 3.26 において限定的ながらできるようになりました。 たとえば、メモ帳のウィンドウのタイトルが "foo.txt - メモ帳" のときのみ 独自の設定を割り当てることは、以下の手順で行えます。 1. XKeymacs のプロパティダイアログでメモ帳に独自の設定を使用するようにし foo.txt に対して適用したい設定を行う。 # 古いバージョンの XKeymacs で設定したままでは、下記の値がないかもしれません 2. レジストリを開き HKEY_CURRENT_USER\Software\Oishi\XKeymacs2\notepad.exe にある WindowText を * から foo.txt - メモ帳 に変更し、 WindowTextType を Ignore から Match Full に変更する 3. XKeymacs のプロパティダイアログを開き、何もせずに OK ボタンを押す # レジストリの変更を読み込むため ウィンドウテキストが foo で始まる時には常に適用したいときには WindowText を foo* に、WindowTextType を Forward Match にしてください。 foo を含む時には常に適用したいときには WindowText を *foo* に、WindowTextType を Match にしてください。 *.txt - メモ帳 と Backward Match の組み合わせも期待通りに動くはずです。 現在の制限として、 一つのアプリケーションに複数の独自の設定を持たせることはできません。 また、上記の設定方法は恐らく将来変更されます。 一つのアプリケーションに複数の独自の設定を持たせることができるようにしたり ダイアログから設定を行えるようにするにはもうしばらく時間がかかりそうなので、 開発途中の機能ですが、お知らせさせていただきました。 興味のある方は利用してみてください。 === メール添付 ここまで === > 実装はあるけど設定するGUIがない機能には、他にAtIbeamCursorOnlyが > あります。これはレジストリを激しく汚すしメモリも食うので削除する > ことにしています。 この機能は "テキストボックス内のテキストの編集時だけ xkeymac の Ctrl-D を on にしたい" という要望を受け、実装しました。 詳細は下記のメールが参考になると思います。 === メール添付 ここから === ----------------------- Original Message ----------------------- From: oishi <oishi****@cam*****> To: xkeym****@freem***** Cc: oishi****@cam***** Date: Sun, 25 Nov 2007 19:54:35 +0900 (JST) Subject: [xkeymacs:0032] Re:ご相談、Ctrl-D 使い分け ---- こんばんは、大石です。 On Sun, 25 Nov 2007 03:56:04 +0900 (JST) hnaok****@mug***** wrote: > 現在の xkeymacs は > プロパティ->詳細タブの画面にてコマンド毎にキーを設定することが > できますが、 > ここで、コマンド毎に「常時有効 or マウスカーソルが I の時のみ有効」の > 設定ができればベストではないかと思います。 > いかが思われますでしょうか? ダイアログから設定できるようにしても良いのですが、 以下の理由からアンドキュメントな機能としたいと思います。 - ほとんどの人には必要ない - 複製は M-w C-y で行うことが Emacs 的に自然 もし hnaoki-san 以外にもこの機能を利用したい方が多いようでしたら ダイアログから設定できるようにしたいと思います。 この機能をダイアログから利用したい方がいらっしゃいましたら お知らせ下さい。> みなさま そのようなわけで、XKeymacs 3.45 でこそっと実装しました。 http://www.cam.hi-ho.ne.jp/oishi/xkeymacs345.zip http://www.cam.hi-ho.ne.jp/oishi/xkeymacssrc345.zip たとえば以下のようにすることで、利用できます。 - XKeymacs 3.45 を起動 - PowerPoint を起動 - XKeymacs のプロパティダイアログのコンボボックスで "Microsoft PowerPoint (POWERPNT.EXE)" を選択し、 "独自の設定を使用する" ラジオボタンを選択し、 OK ボタンを押す (Excel など他のアプリケーションでもこの機能を使いたいならば同様のことをする) - XKeymacs を終了する - レジストリエディタを起動する - 次の場所に at ibeam cursor only という名前の DWORD 値を作成し、値を 1 にする HKEY_CURRENT_USER\Software\Oishi\XKeymacs2\POWERPNT.EXE\delete-char\Ctrl+D (Excel など他のアプリケーションでもこの機能を使いたいならば同様のことをする) # 上記の設定をエクスポートすると、以下のようになります --- [HKEY_CURRENT_USER\Software\Oishi\XKeymacs2\POWERPNT.EXE\delete-char\Ctrl+D] "at ibeam cursor only"=dword:00000001 --- - XKeymacs 3.45 を起動 このように設定することにより、PowerPoint 上で C-d を実行すると、 マウスのカーソルが I のときだけ delete-char として働き、 それ以外のときには XKeymacs としてはなにも行わず PowerPoint に Ctrl+D が渡るようになります。 コマンド毎に設定するようにしても良かったのですが、 汎用性が高いに如くは無かろうということで、 ショートカットキー毎に設定するようにしました。 いくつかの特殊なコマンドでは期待通りに動かないのですが、 C-d など大抵のコマンドでは問題なく動くと思います。 もし、使いたいコマンドで期待通りに動かないことがあればお知らせ下さい。 また、上述のレジストリエディタで行った設定は、 XKeymacs のプロパティダイアログで OK ボタンを押すとクリアされてしまいますが そう頻繁に設定を変えることもないかと思うので、制限事項とさせてください。 === メール添付 ここまで === 上記 2 点の機能をはじめ、XKeymacs にはいくつか undocumented な機能が存在します。 undocumented にした主な理由として、一部の利用者の要望に応じ実装してみたが、 一般的な利用者に混乱を招きかねないので GUI の実装を控えた、もしくは、 単に GUI の実装をさぼった、ということが挙げられます。 利用者からの要望/バグの指摘は、 氷山の一角であり多くの人が欲っして/困っているタイプと 世界中で恐らくは彼/彼女だけが欲っして/困っているタイプの 2 つに 大概は用意に判別できて、特に後者に対しどのように対応するかは 開発者のポリシーに依存する部分だと思います。 私は可能な限り、後者の要望に対しても前向きに対応するようにしてきました。 その理由として、大きく見ると、一人でも利用者が増えれば、不具合の報告や 要望をくれる人が増え、その実装を手伝ってくれる人も増え、 結果的により短期間で XKeymacs がより良いものになる可能性が (たとえ僅かにしろ) 増加するのではないかと考えた (というよりはむしろ期待した) ことが背景としてあり、 個別に考えても、ほとんどの人が使わない機能のために レジストリを激しく汚したりメモリを食っても、一般の利用者は気付かないので、 その機能の実装により幸せになる人が一人でもいれば良いと考えたことがあります。 これはあくまで "大石はそう考えていた" というだけで、 XKeymacs の今後の開発方針に対し私の考えを押しつけるつもりはありません。 勝手ながら undocumented な機能を削除する際について一点だけお願いがあります。 全てとまでは言わないまでも大半の undocumented の機能は メーリングリストで紹介されており、現在も利用している方がいる可能性があります。 undocumented な機能ではありますが、それらの機能を削除する際は、 利用者が XKeymacs を version up してそれまで使っていた機能が使えなくなって びっくりすることを避けるために、メーリングリストで新 version を案内する際に 新機能の紹介などと併わせ undocumented な機能を削除したことも紹介して 頂ければと思います。 undocumented な機能の利用者が必ずしも現在も (ほとんどメールが流れない) メーリングリストに参加しているとも限らないことから、 当初本メールに "version の履歴 (現在の release_J.txt 相当のところなど) にも 削除したことを明記して頂ければ……" と書いていたのですが、 よく読み直すと undocumented な機能の削除のみ document 化するのも アンバランスな気がするので、その辺りの取り扱いは一任します。 以上、御参考まで。 -- oishi****@cam***** http://www.cam.hi-ho.ne.jp/oishi/