emacsが主要なアップ/ダウンイベントをサポートしない理由


9

AFAIK emacsはkeyup/keydownイベントをサポートしていませんkeypressed。結果の例としては、リージョンをマークしたい場合、最初にマークset-mark-commandを設定する必要があり、ポイントを移動することでリージョンをマークできます。テキストをマークするときにShiftキーを押す必要がないため、これは本当に興味深い機能ですが、他のエディターと同じように動作することが望ましい場合があります。この質問は、emacsがこの機能をサポートしていない理由と、これがより優れていると考えられる理由を理解するためのものです。また、これをemacsで解決するための理想的なアプローチはありますか?


6
Emacsはターミナルでも動作し、キーのアップ/ダウンイベントはその環境では意味がありません。おそらく、それが少なくともこれらのイベントがサポートされていない歴史的な理由です。ただし、サポートできないという意味ではありません。私はそれを気にする十分な緊急の必要性を誰も見たことがないと思います。
Harald Hanche-Olsen 2015

1
これは有効な引数ですが、グラフィカル環境でのみ機能する他の機能(フォント、マウスイベントなど)があります
シャフト

3
キーアップ/ダウンイベントをシミュレートして、キーダウン時にファイルをプレビューし、キーアップ時にプレビューバッファーを閉じるコードを書きました。答えはハックだと答えていますが、安定したものに成形できるかもしれません。emacs.stackexchange.com/questions/275/…–ジョー
ドン

3
「他のエディターと同じ動作」とは何ですか?[他のエディターは使用していません]?テキストの残りの部分は「shift + select to to select」を示唆しているようですが、それはすでにEmacsでサポートされています。
ステファン

4
これらの重要なイベントはEmacsには存在しないことは正しいですが、Emacs シフト選択をサポートしていることを知っておく必要があります(それが質問のきっかけになった場合)。
マラバルバ2015

回答:


2

歴史的な理由でコメントで答えたように、Emacsは端末で実行され、それらのデバイスは文字指向です-これがキーボードで発生すると、バイトシーケンスが保証されません。

議論は、これをグラフィカル環境に実装することが可能であることも指摘しています。しかし、誰もそれに興味を持っていません。

ゲームや音楽ソフトウェアなどの一部のプログラムは、キーが押された時間、長さ、リリースされたときの詳細情報を使用する場合がありますが、テキスト編集はこれらと共通していません。

マニュアルから(info "(elisp)Mouse Events")

Emacs supports four kinds of mouse events:
click events, drag events, button-down events, and motion events.

ホバーイベントはアイドルタイマーによってエミュレートできます-遅延後のポイントで物事を分析します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.