コンソールでemacs24を実行すると、Fnキーは両方のC-SPC
Lenovoノートブックに選択マーク(と同じ)を設定します。画面の明るさ、音量などを変更するにはFnキーが必要なので、これは非常にクレイジーです。
Emacsで動作しないようにFnキーをバインド解除する方法は?
編集する:
emacsを押すと、C-h k Fn
次へを押すのとまったく同じ出力が得られますC-h k C-SPC
。
C-@ runs the command set-mark-command, which is an interactive compiledLisp function.
It is bound to C-@, C-SPC.
(set-mark-command ARG)
...
acpi_listenを実行してFnキーを押すと、次のような出力が表示されます。
^@
C-SPC
または(Ctrl + AltGr + 2)を押すと、C-@
acpi_listenから得られる出力とまったく同じです。つまり、すべて同じacpiイベントに登録されています。
これを見つけたら設定を解除してみましたC-@
。私が動作させる唯一の方法は次のとおりです。
(global-set-key (kbd "\C-@") 'ignore)
これ:
(global-set-key (kbd "\^@") 'ignore)
どちらの場合もC-SPC
リセットを試みましたC-SPC
。
(global-set-key (kbd "C-SPC") 'set-mark-command)
しかし、これはうまくいきません。
その後、質問を次のように具体化できます。
C-SPC
とが同じacpiイベントに登録されている場合は、Fn
emacsにそれを区別するように指示できますか?
(これはコンソールでのみ発生する問題です。Emacsは私のXシステムでFnキーを認識しません...)
答え1
dumpkeys、loadkeys、およびshowkeyを使用するこのソリューションは、Linux仮想コンソールで実行されるプログラムによってファンクションキーが予期しない方法で解釈される他のインスタンスに適用できます。
次のコマンドを実行して、問題を引き起こすキーまたはキーの組み合わせのキーコードを見つけます。
$ sudo showkey
...そしてキーを押します。私の場合、クリックFn出力は143です。
Fnコンソールのプログラムがそれを他のものとして解釈しないようにするには、/etc/rc.local に以下を追加します。
(dumpkeys | grep keymaps; echo "keycode 143 =") | loadkeys
143は当然そのキーのキーコードで置き換える必要があります。また、Fnチルダを出力する+(ボリュームを下げる)に問題があったLeftArrowので、その組み合わせのコードも取得し、/etc/rc.localに別の行を追加しました。
Fnこれは、機能の正常な動作(ボリューム、明るさの変更など)を妨げず、emacsなどのプログラムでファンクションキーが異なると解釈されるのを防ぐことに注意してください。