4

私はemacs Lispが初めてです。elisp で、バッファーに入力しているときにキーボード イベントをリッスンできるかどうか疑問に思っています。read-key-sequence / read-key-sequence-vector / read-event / read-key のドキュメントについて読みましたが、これらのコマンドは、呼び出されたときに後続のキーストロークが表示されないため、バッファリングに入るフローをブロックすることがわかりましたバッファ。たとえば、現在のバッファに「go」と入力し、read-key-sequence を呼び出してから「o」と入力すると、2 番目の「o」はバッファ コンテンツ テキストの文字ではなく、コマンド シーケンスとして扱われます。

これを回避する方法を見つけたかもしれませんが、それはプログラムでキーストロークをバッファに挿入することです:

(catch 'break
(while 
  (progn
    (let
        ((strokes (read-key-sequence-vector nil)))
        (if 
            (equal strokes [27 27 27])
            (throw 'break nil)
            (insert strokes)))
    t)))

これを達成するためのより良い方法があるかどうかを確認したいと思います。elisp が javascript のようなイベント ドリブンの処理を実行できるとよいでしょう。

 someObject.addEventListener('keydown', function (e) { ... })

もちろん、それは私の唯一の希望です。:) ありがとう。

4

1 に答える 1