
今回は、以前の記事で、シェル(主にTeraTerm)でメターキー(Delete キー, Home キー , End キー, Insert キー)の動きが変なので対応してみた で書ききれなかった TeraTermのテンキー(数値キーパッド)(/,*,-,+)の動作に関してです。
TeraTermのデフォルトの設定では、テンキーの動作がNumLock ON/OFFにかかわらず、/,*,–,+ のキーが正しく動作してくれません。
今回は、そのテンキーの動作がおかしい(期待している動作と異なる)場合の対処について簡単に解説してみます。
- 目次
- 履歴
2012年11月19日 初版
TeraTerm で テンキーキー(/ キー, * キー , – キー, + キー) を押すと変な文字列が表示(あるいはビープ音)されてしまう
[ 現象 ]
[ シェルのコマンドライン ]
以下は、TeraTerm でSSH接続したサーバーへそれぞれテンキー(NumLock ON)を押下した際に送信されるキー情報です。 ( (Bシェル の場合) read コマンド, (Cシェル の場合) echo $< コマンドで で送信されてくるキー情報を確認することができます。 )
- “/” キー押下で出力されるキー情報
$ read
^[OQ
- “*” キー押下で出力されるキー情報
$ read
^[OR
- “-” キー押下で出力されるキー情報
$ read
^[OS
- “-” キー押下で出力されるキー情報
$ read
,
[ 対処 ]
TeraTermのクライアントソフトの確認
これは、ほとんどの場合、TeraTerm固有の問題です。
デフォルトの設定では、TeraTermはキーパッド情報を変換して送信するような設定になっています。
この変換を解除すれば良いでしょう。
以下はTera Termの設定例です。
キーボード情報のテンキー情報変換設定を解除する
接続先へ送信するテンキー情報を Tera Term のキーボード設定ファイル ( KEYBOARD.CNF : インストール先ディレクトリにある )に持っています。
[Tera Termインストール先ディレクトリ]\KEYBOARD.CNF 内の[VT numeric keypad]情報に テンキー情報が設定されていないか確認します。
デフォルトでは、以下のような設定になっていると思います。
|
これを全てOFFして、Tera Termを再起動します。
|
サーバーへ接続し、read コマンドで送信されてくるキー情報を確認してみてください。
|
これでOKのはずです。
vim での編集時も動作がおかしかったのですが、これですべて解消しました。
Bシェル の場合
|
Cシェル の場合
|
^[ : エスケープ文字になります。
上記の各シェルの設定文字列の \e に相当します。
シェル(主にTeraTerm)でメターキー(Delete キー, Home キー , End キー, Insert キー)の動きが変なので対応してみた では、色々と奥深いものもありましたが、今回は、単純にキーの割りあてをデフォルト設定解除すればよかっただけでした。
下記は、TeraTermのヘルプ記載事項の引用です。
キーボードの初期設定は VT100 のキーボードをエミュレートするようになっています。このためテンキー(数値キーパッド)のキーを押したときキーに書いてある文字と違う文字が送出されることがあります。VT100 キーボードのテンキーの機能を使用する必要がなく、テンキーを普通に使いたい場合は、キーボード設定ファイル KEYBOARD.CNF の[VT numeric keypad] の全項目を以下のように OFF にしてください。詳しくは、KEYCODE.TXT を読んでください。試した限りでは、off設定でなく、コメントアウトでもOKのようです。
いずれにしても同問題でお悩みの方は、一度試す価値ありだと思います。
コメントを投稿 :