vine-users ML アーカイブ



[vine-users:053983] Re: 全範囲選択を [Ctrl]+[a] して [Delete] か [BackSpace] で削除

  • From: NISHIMURA Daisuke <nishi@xxxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:053983] Re: 全範囲選択を [Ctrl]+[a] して [Delete] か [BackSpace] で削除
  • Date: Fri, 04 Oct 2002 18:05:06 +0900
>> "YukaYoshikawa" == YukaYoshikawa  <YukaYoshikawa@xxxxxxxx> writes:

>> delete-backward-charのかわりにdelete-charを使う関数を作って、
>> [delete]にはそれをバインドすればよいのでは?
YukaYoshikawa> すいません。それにはどう記述すればいいのでしょうか?
YukaYoshikawa> (define-key global-map [delete] delete-char)
YukaYoshikawa> がそれではないのですか?

違います。

Emacs では、キーに割り当てられた機能は関数で実現されます。
(関数 = function = 機能 なんだけどね。)
で、キーに関数を割り当てることを「バインドする」などと言います。
1つのキーには同時には1つの関数しか割り当てることができません。

キーに関数を割り当てるための記述が、 define-key や、
global-set-key, local-set-key といったものです。
(global-set-key key command) は、
(define-key global-map key command) と同じ意味です。

(define-key global-map [delete] 'delete-char)
という記述は、 Delete キーに delete-char という関数を
割り当てるという意味になります。 delete-char という関数は
Emacs にもともと備わっているもので、カーソルの後の1文字を
削除します。

ですから、そのように書くと、そのような動作をするわけです。

-- 
西村 大介 <nishi@xxxxxxxxxxxxxxxxxxxxx>
東京大学 総合文化研究科 広域システム科学系