キーパッドモードについて
VT100のテンキー(数値キーパッド)には、「数値キーパッドモード」と
「アプリケーションキーパッドモード」の二つのモードがあります。
サーバ側は、制御シーケンスを送出する事によってキーパッドモードを
変更する事ができます。
これらの二つのモードには、以下のような違いがあります。
- 数値キーパッドモード
-
キーに対応する文字をそのまま送信します。例えば1キーを押したならば1を
送信します。
通常はこのモードです。
- アプリケーションキーパッドモード
-
キーに対応する特殊なシーケンスを送信します。例えば1キーを押したならば
<ESC>Oqというシーケンスを出力します。Num Lockキーも含まれ、本来の機能は無効となり、他のファンクションキーと同様の動作をするようになります。
このモードは、メインキーの数字キーとテンキーを区別したい場合に使われます。
例えば、テンキーのキーに特殊な機能を持たせたい時などに使われます。
通常このモードは、必要な時にアプリケーション側から切り替えられる事に
よって使われます。
カーソルキーモード
VT100のカーソルキーにも「ノーマルカーソルモード」と
「アプリケーションカーソルモード」の二つのモードがあります。
カーソルキーモードも、サーバ側は制御シーケンスを送出する事によって
モードを変更する事ができます。
- ノーマルカーソルモード
-
画面上のカーソルを移動する為のシーケンスと同じシーケンスが送信されます。
例えば、上キーは <ESC>[A というシーケンスが送信されます。
- アプリケーションカーソルモード
-
ノーマルカーソルモードとは別のシーケンスが送信されます。
例えば、上キーは <ESC>OAというシーケンスが送信されます。
またTeraTermでは、マウスのホイールを回転させた時にスクロールバーが上下する代わりに、
カーソルの上または下キーのシーケンスが送信されるようになります。
アプリケーションカーソルモード時のマウスホイールの動作も参照してください。
アプリケーションキーパッド/カーソルモードの無効化
場合によっては、アプリケーションキーパッド/カーソルモードを使いたくない
事があるかもしれません。
例えば、viエディタは起動された時に端末をアプリケーションキーパッドモードに
切り替えます。これによってテンキーに特殊な機能を割り振る事が出来るように
なりますが、逆にテンキーによって数値を入力する事が出来なくなります。
vi上でもテンキーで数値を入力したい場合は、
キーボード設定ダイアログで
アプリケーションキーパッドモードを無効化してみてください。
ただしこの設定を行っていると、アプリケーションキーパッドモードを使用する
他のアプリケーションで問題がでるかもしれませんので注意してください。
アプリケーションキーパッドモードを無効化するには他の方法もあります。