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

Re: [bep] C-k



吉本です。

Reply Koichi INOUE <inoue@...>'s message:
> そういえばありませんね。私個人は行頭まで削除というのをあまり使わないので
 たとえば、C-xC-f の時に C-aC-k しませんか?

> 動かない理由ですが、(lambdaの前にクオートを表す'が必要なこと、
> これだと、閉じ括弧がちゃんとあったとしたら、キーを定義しようとした時点で
> (lambda 以降が評価されてしまうので、そのときにどこかで1回だけ行削除が呼
 と言うのをさけるためにシングルクォートが必要なのですよね?  たしかシ
ングルクォートはその場だけ評価しないキーワード(?)だったでしたっけ?

> Kが大文字なのは、CTRL+SHIFT+kという意味でしょうか。
 はい、その様に意図しています。

 で、井上さんのアドバイスをもとに改造したら動きました。ところが、シフ
トキーの押し下げの有無に関わらず行頭までの削除になってしまいました。

> でも、C-kの動作を変えてしまうとあんまりうれしくないと思うので、なにか別
 シフトキーを押し下げしているので、小文字とは完全に別のコマンドキーと
考えていたのですが、大文字で C-K で定義したものが、 もとからある小文字
の C-k のコマンドに何か影響してしまうのでしょうか?

> この操作ができるようにするには、Meadowにw32-set-modifier-keyを使って
> shiftキーをモディファイアキーとして登録する必要があるんじゃないかと思い
> ます。
> なんか元からできていた気もするのですが、ちょっとよく分かりません。
> ただ、その場合C-KではなくC-S-Kのように書くんだったと思います。
 C-S-k としたのですが、はねられてしまいます。readme.ja を読んだので
すが、よく分かりません。

以下引用
| 3.1.3.... (w32-set-modifier-key KEY MODIFIER)
| 
| この関数でキーに修飾(modifier)キーを設定することができます。
| 修飾キーとは、そのキーを押下することによって、他のキーの操作を違うものに
| することができるキーのことです。Emacsはmeta, ctrl, alt, shift, super, hyperの

| 6種類の修飾を重ねあわせることが出来ます。(shiftは大分毛色が違うのですが)
| 
| この関数は実際にどのキーを修飾キーとして取り扱うかを指示します。
| 
| KEY はキーの仮想コード、又はキーを示す文字列です。
| MODIFIER には以下のキーのどれかを指定することができます。
| 'nil.... 通常のキー
| 'none... 無視されるキー。この指定を受けたキーに関する全ての動作はMeadowから無
視されます。
| 'meta... meta modifierキー
| 'ctrl... ctrl modifier キー
| 'shift.. shift modifierキー(修飾キーとしてのみ動作します)
| 'alt.... alt modifier キー(Windows の alt キーとは違います。)
| 'super.. super modifier キー
| 'hyper.. hyper modifier キー

(w32-set-modifier-key KEY MODIFIER)
の用例が良く分からないのです。

(w32-set-modifier-key "shift" 'shift)

とかしたのですが、当然の様にカーンと言われてしまいました。(笑)

 井上さんのを頼りに以下の様になっています。
;
(define-key global-map "\C-K"
	'(lambda ()
	(interactive)
	(when (featurep 'emacspeak)
		(emacspeak-speak-line 0))
	(kill-line 0)))
;
 さて、もう一息、どうやって C-S-k のキーに割り当てられる様になるのでしょうか?

 featurep、いろんな関数があるんですね。いったいどれ程あるのだろう。。。


吉本浩二