追加読書

追加読書

FreeBSD端末でLinux .bashrc設定を使用しようとしています。 Linuxでは、set -o viキーバインディングでbashを使用しますCtr+H(私の履歴ファイルのエディタを呼び出します)。仮想マシンのFreeBSDでは(sshを介して接続されていない)、バックスペースキーを押すたびにこのキーバインディングが呼び出されます。

Linux端末に表示され、バックスペースキーを生成します^?(とは異なります^H)。 FreeBSDでバックスペースとして生成されたキーはです。^Hこれは私のキーバインディングをトリガーします。私のキーバインディングが両方の端末で動作するようにする方法があるか^H(つまり、FreeBSD端末で^ Hの代わりにバックスペースとして^?を使用させる方法)、それとも別のショートカット方式を使用する必要があるかどうか疑問に思います。

私は努力したstty -a... erase = ^?; erase2 = ^H ...試してみましたstty erase2 ^?stty -a期待どおりに出力が変更されましたが、バックスペースキーの動作は変わらず、まだ作成中です^H

ベストアンサー1

sttyこれとは何の関係もありません。これは制御ライン規律。ラインルールは、カーネル仮想端末の仮想ワイヤをたどると文字に応答します。この時点で、入力は実際の行を介して送信される実際の端末のように文字になります。

カーネル仮想端末の文字にキーストロークをマッピングするのがキーマップです。

% sed -ne '2,4p;/014/p' /usr/share/vt/keymaps/uk.capsctrl.kbd
#                                                         alt
# scan                       cntrl          alt    alt   cntrl lock
# code  base   shift  cntrl  shift  alt    shift  cntrl  shift state
  014   bs     bs     del    del    bs     bs     del    del     O
%

14は、PCモデルMおよびWindowsキーボードのISO 9995-1位置A13およびA14にあるバックスペースキーのPC / ATキーコードです。このキーマップでどのようにマッピングされているかを確認できます。ここで何を変えるべきかは明確でなければなりません。 ☺

kbdcontrolターゲットカーネルの仮想端末デバイスを標準入力として使用してキーマップをロードできます。もちろん、ファイル形式はkbdmap(5)として文書化されています。実際には完全にSCO Unixで提供されており、それに関する文書を見つけることができます。FreeBSDよりも優れています。

追加読書

  • 鍵盤§7.SCO Unixのマニュアル。

おすすめ記事