loadkeysは(ほぼ)効果がありません

loadkeysは(ほぼ)効果がありません

私はvagrantでCentOS 6.4を実行し、vagrantを介してボックスにSSHを実行しています。私はしばらくバックスペースキーを操作しようとしました(例chronicledCentos端末はバックスペースとCtrl-hを正しく設定します。)

この作業の一環として、ロードキーを使用してキーマップの動作を修正してみましたが、うまく機能しないようです。そこでルートとして以下を行いました(指定どおり)。ここ):

[root@localhost vagrant]# dumpkeys -f  | grep -iE string
...
string F9 = "\033[20~"
string F10 = "\033[21~"
...

[root@localhost vagrant]# echo 'string F10 = "foo" ' | loadkeys   # to make F10 print "foo"

[root@localhost vagrant]# dumpkeys -f  | grep -iE string   # verify that keymap is changed
...
string F9 = "\033[20~"
string F10 = "foo"
...

今F10を入力してください。これは~印刷の代わりに文字を提供し続けますfoo。これはloadkeysが呼び出される前の元の動作でした。したがって、loadkeysがまったく影響を与えないように見えますか?

答え1

loadkeysioctl()カーネル仮想端末デバイスを介して要求し、カーネルに組み込まれた端末エミュレータを再プログラムします。 .を介してコンピュータに接続すると、そのターミナルエミュレータを使用しませんssh。実際には、そのマシンの端末エミュレータ、カーネル、またはユーザースペースはまったく触れません。

ローカルコンピュータの端末エミュレータは、ファンクションキーを制御シーケンスにマッピングします。もちろん、loadkeys接続のローカル側とはまったく異なるコンピュータで実行されている端末エミュレータを再プログラムしないでくださいssh

スーパーユーザーとして実行していない場合、端末はそのログインセッションに関連していないため、ログインセッションで実行すると通信するカーネル仮想端末が見つからないというloadkeys便利なエラーメッセージが表示されます。sshloadkeys

関連情報