通常のキーを修飾キーに変換します


11

なんらかの理由で、デンマークのドル記号をOS Xに送​​信するキーを備えたキーボードがあります§。シフトでプラス/マイナス記号-を送信します±

Emacs内で§キーを見てそれをハイパーまたはスーパーに変換することは可能ですか?したがって、その§キーを押しながらを押すと、EmacsでfアクティブH-fになります。

私は次のことを試しましたが、うまくいきません:

(define-key key-translation-map (kbd "§") (kbd "<Hyper>"))

<Hyper> is undefinedキーを押したときに表示されるだけで、修飾子としては機能しません。

これも機能しません:

(define-key key-translation-map (kbd "§") "<Hyper>")

§キーをキーに変えるだけ<です。



2
これはOSレベルでできるはずですが、emacsではできません。
マラバルバ2014年

回答:


4

短いバージョン:Emacsの用語では、私が本当に必要なものはキーコードでした。


@Malabarbaと@XinUmbralisは正しいようです-Emacsでは通常のキーを通常の修飾キーに変えることができません。キーボード上のすべての修飾キーを組み合わせて「ハイパー」と呼ぶのはあまり好きではありません。これは、将来他のものと競合する可能性があるためです。

私はすでにカラビナを使用していますが、どうやらそれを使ってカスタム修飾子を作成できます。しかし、§-aEmacsが処理方法を知っているものを送信するように、OSレベルですべての組み合わせをマッピングする必要があります。

それから私はキーコードライブラリを思い出し、それが私が欲しかったものの真のEmacs用語であることに気づきました。設定例:

(require 'key-chord)
(key-chord-mode 1)
(key-chord-define-global "§a" 'other-frame)

私がキーコードで抱えている問題の1つは、キーコードのセマンティクスが修飾子+キーとは少し異なるということです。繰り返しは許可されておらず、コード全体をすばやく入力する必要があります。

これらの問題の解決策を思いついた場合は、どこかに書いて、この回答の編集にリンクを提供します。


3

セクション記号キー(§キー)を再バインドしてhyperコマンドを送信することはできませんが、Seil PCKeyboardHackを使用して、caps-lockキーを再バインドしてHyperを送信することはできます。

Seilでcaps-lockキーを再バインドするには、次のようにします。

  1. Seilを開き、「Caps Lockキーを変更する」をクリックします。
  2. 「Caps Lockキーを変更する」の横のチェックボックスを選択します。
  3. キーコードをダブルクリックし、キーコード80を入力します。

1
この答えはおそらくコメントとしてはより良いでしょう。一般に、回答はリンクを提供する以上のことを行う必要があります。これは、リンクがいつでも消える可能性があるためです。自己完結型にするために回答を編集していただけませんか?
ダン

残念ながら、少なくとも私にとっては、キーコードを80に設定しても何も起こりません。
Marcin 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.