# キーパッドモードについて

VT100のテンキー(数値キーパッド)には、「数値キーパッドモード」と 「アプリケーションキーパッドモード」の二つのモードがあります。 サーバ側は、制御シーケンスを送出する事によってキーパッドモードを 変更する事ができます。 これらの二つのモードには、以下のような違いがあります。

数値キーパッドモード
  キーに対応する文字をそのまま送信します。例えば1キーを押したならば1を 送信します。 通常はこのモードです。
アプリケーションキーパッドモード
  キーに対応する特殊なシーケンスを送信します。例えば1キーを押したならば <ESC>Oqというシーケンスを出力します。Num Lockキーも含まれ、本来の機能は無効となり、他のファンクションキーと同様の動作をするようになります。 このモードは、メインキーの数字キーとテンキーを区別したい場合に使われます。 例えば、テンキーのキーに特殊な機能を持たせたい時などに使われます。 通常このモードは、必要な時にアプリケーション側から切り替えられる事に よって使われます。

# カーソルキーモード

VT100のカーソルキーにも「ノーマルカーソルモード」と 「アプリケーションカーソルモード」の二つのモードがあります。 カーソルキーモードも、サーバ側は制御シーケンスを送出する事によって モードを変更する事ができます。

ノーマルカーソルモード
  画面上のカーソルを移動する為のシーケンスと同じシーケンスが送信されます。 例えば、上キーは <ESC>[A というシーケンスが送信されます。
アプリケーションカーソルモード
  ノーマルカーソルモードとは別のシーケンスが送信されます。 例えば、上キーは <ESC>OAというシーケンスが送信されます。
  またTera Termでは、マウスのホイールを回転させた時にスクロールバーが上下する代わりに、 カーソルの上または下キーのシーケンスが送信されるようになります。 アプリケーションカーソルモード時のマウスホイールの動作も参照してください。

# アプリケーションキーパッド/カーソルモードの無効化

場合によっては、アプリケーションキーパッド/カーソルモードを使いたくない 事があるかもしれません。 例えば、viエディタは起動された時に端末をアプリケーションキーパッドモードに 切り替えます。これによってテンキーに特殊な機能を割り振る事が出来るように なりますが、逆にテンキーによって数値を入力する事が出来なくなります。 vi上でもテンキーで数値を入力したい場合は、 キーボード設定ダイアログで アプリケーションキーパッドモードを無効化してみてください。 ただしこの設定を行っていると、アプリケーションキーパッドモードを使用する 他のアプリケーションで問題がでるかもしれませんので注意してください。

アプリケーションキーパッドモードを無効化するには他の方法もあります。