「スティッキー」修飾キーとしてのファンクションキーの使用


10

ファンクションキー(など<f8>)を一種のスーパーキーダウンイベントとして使用し、次のキーストローク(f.ex. s)を次のように処理する方法はありs-sますか?つまり、これはスティッキーモディファイアキーに似ていますが、OS自体ではなく、emacsの場合のみです。

キーコードモードと、このようなキーの組み合わせを使用(global-set-key (kbd "<f8> b t") 'undo)してキーボードショートカットを保存できることを知っています。しかし、私はスーパーキーへの既存のバインディングで機能し、将来すべてを2回バインドする必要がないもの(つまり、スーパーキー用の1つのバインディングとファンクションキー用の1つのバインディング)が欲しいのですが。

回答:


14

ワークフローが次の場合:

  1. プレスアンドリリース F8
  2. 押しsて離します。バインディングがトリガーされることを期待してくださいs-s
  3. 後で押すキーには、もう一度s押すまで修飾キーはありません。F8

その後、この機能はEmacs自身に存在しますC-x @ sデフォルトでバインドされています(明らかに、非常にまれな使用のみを目的としています)。コマンドがあるevent-apply-super-modifier(同様の機能が存在するためcontrolshiftmetaaltおよびhyper)。デフォルトのバインディングはにありfunction-key-map、グローバルまたはローカルのキーマップのバインディングによってオーバーライドされます。key-translation-mapapply-modifierの意味を優先したい場合は、代わりに使用できます。

(define-key function-key-map [f8] 'event-apply-super-modifier)

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