12

これらの 質問のいずれか、またはWindows の emacs で Caps Lock を Control にマッピングすることに関するEmacsWiki の記事を読むと、最善の答えはレジストリに関係しているようです。私の質問は、管理者権限がないためにマシンのレジストリを変更できない場合にユーザーができることです。emacs 内からマッピングを行う方法はありますか? この記事は、「人々が言及したように、もちろん、Caps-Lock を代わりに他のキー、たとえば Control キーにマップすることもできます」とさえ言っています。しかし、次のようなことを試して、コントロールキーを表す方法を理解できません(かなり包括的に見えるが、Windows中心ではない可能性のあるさまざまな参照を使用)

(setq w32-enable-caps-lock nil)
(global-set-key [capslock] '[control])

(setq w32-enable-caps-lock nil)
(global-set-key [capslock] 'ctl-x-map)

動作しないようです。

4

4 に答える 4

10

これがあなたの質問に実際に答えていないことはわかっていますが、Trey Jackson が基本的に問題を説明しました。コントロール キーだけを検出するには、Windows で低レベルのキーボード フックが必要ですが、これは Emacs には実装されていないと思います。

1 つの方法 (外部プログラムを使用しますが、管理者権限は必要ありません) は、AutoHotkeyを使用することです。必要なのは、次の 2 行のスクリプトだけです。

CapsLock::Ctrl
LCtrl::Capslock

emacs が開いているときはいつでもこのスクリプトを実行する必要がありますが、ありがたいことに、Autohotkey は非常に目立たないアプリケーションです (通常、メモリだけで数百キロバイトしか必要としません)。たとえば、このスクリプトを .emacs で実行して、emacs が開かれるたびにコントロール キーと capslock キーが交換されるようにすることができます。

于 2009-05-08T16:36:20.993 に答える
1

Windows で CapsLock を再マップする最も簡単な方法は、このCapsLockChangerユーティリティをダウンロードし、マップするキー (Control) を選択して、[スタート] -> [スタートアップ] メニューに配置することです。

トレイに残り、キーの再マッピングでジョブを実行し、レジストリをいじる必要はありません。

于 2009-05-09T16:36:48.637 に答える
0

レジストリを変更するために必ずしも管理者権限が必要というわけではありません。
実際、Windows レジストリは、ファイル システムによく似たセグメント化されたリソースであり、レジストリ内のさまざまなブランチやノードに対してきめ細かなアクセス許可を設定できます。レジストリを変更できないというあなたの仮定は正しいですか? Vista ではデフォルトで正しいと思いますが、以前の Windows ではそうではありません。

于 2009-05-09T19:26:28.857 に答える