# キーボード設定ファイル

キーボード設定ファイルは、キーボードの各キーとそれに割りあてるられる機能(VT 端末の機能、ユーザー定義文字列の送出、Tera Term コマンドの実行、マクロの実行)を定義します。

Tera Term インストール時のキー設定は各キーの機能が VT 端末にできるだけ近くなるようにされています。 キーボード設定ファイルを編集することによって、自由にキー設定を変更することができます。

コマンドラインで Tera Term が読み込むキーボード設定ファイルの名前を指定することができます。 ファイル名の拡張子を省略した場合は、".CNF"であるとみなされます。ファイル名を指定しない場合、ファイル KEYBOARD.CNF が読み込まれます。

配布パッケージには以下のキーボード設定ファイルが含まれています。

IBMKEYB.CNF
  IBM-PC/AT (いわゆる DOS/V マシン) 101 (106) キーボード用設定ファイルの例 (Windows 95/NT 用)
PC98KEYB.CNF
  NEC PC 98 キーボード用設定ファイルの例 (Windows 95 用)
NT98KEYB.CNF
  NEC PC 98 キーボード 用設定ファイルの例 (Windows NT 用)
FUNCTION.CNF
  IBMKEYB.CNF をベースにしたカスタマイズ例
  - F1-F10 が有効
  - エディタキーパッド(*1)と特殊キー(*2)は、キートップに刻印された名称に対応する VT220 端末キー用のシーケンス(*3)を送出する
EDITOR.CNF
  IBMKEYB.CNF をベースにしたカスタマイズ例
  - エディタキーパッド(*1)は、キートップに刻印された名称に対応する VT220 端末キー用のシーケンスを送出(*3)する
KEYBOARD.CNF
  インストール時には EDITOR.CNF と同一

(*1) ここで言うエディタキーパッドとは、Ins, Del, Home, End, PageUp, PageDown キーのことを指します。
(*2) ここで言う特殊キーとは、テンキーの *, /, +, -, Ctrl+"+" キーのことを指します。
(*3)VT220 端末ではこれらのキーの位置が 一般的な 101(106) キーボードとは異なっています。FUNCTION.CNF, EDITOR.CNF 以外のキーボード設定ファイルでは、VT220 端末でその位置に配置されているキーに相当するキー用のシーケンスが送出されるようになっています。これはオリジナルの Tera Term Pro の仕様をそのまま踏襲したものです。
一方 FUNCTION.CNF, EDITOR.CNF では、各特殊キーのキートップに刻印された名称に相当するキー用のシーケンスが送出されるようになっています。これにより、特殊キーに対応したアプリケーション上では、各特殊キーは刻印された名称どおりのキーとして機能するようになると思います。

インストーラーは EDITOR.CNF を KEYBOARD.CNF としてコピーします。 もし違う設定を使いたい場合には、自分で適切なファイルをコピーして KEYBOARD.CNF を作成し直してください。

PC98 NX シリーズの PC の場合、IBMKEYB.CNF を使用してください。

キーコードは keycode.exe で調べることができます。keycode.txtを参照ください。

# キーボード設定ファイル詳細

## キーボード設定ファイルの形式

キーボード設定ファイルの中で用いられる PC key code は PC の各キーまたはキーの 組み合わせに対応した数値で、使用するキーボードによって異なります。

キーボード設定ファイルには次の6つのセクションが存在します。

- [VT editor keypad]
- [VT numeric keypad]
- [VT function keys]
- [X function keys]
- [Shortcut keys]
- [User keys]

### [VT editor keypad] セクション

VT 端末のエディターキーを PC キーに割り当てます。

    	形式:
    		<VT editor key name>=<PC key code>

    	<VT editor key name>
    		Up, Down, Right, Left, Find, Insert, Remove, Select,
    		Prev, Next

    	<PC key code>
    		PC key code (10進数)

    	例:
    		Up=328

### [VT numeric keypad] セクション

VT端末の数値キーを PC キーに割り当てます。

    	形式:
    		<VT numeric key name>=<PC key code>

    	<VT numeric key name>
    		Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8,
    		Num9, NumMinus, NumComma, NumPeriod, NumEnter, PF1,
    		PF2, PF3, PF4

    	<PC key code>
    		PC key code (10進数)

    	例:
    		Num0=82

#### 注意

VT 端末ではメインキーパッドの "Enter" キーと数値キーパッドの "Enter" キーが違う文字列を送出するモードがあるので、"NumEnter=" の 後にはメインキーの "Enter" の PC key code を書かないでください。 メインキーパッドの "Enter" と数値キーパッドの "Enter" が同じ PC key code を発生するキーボード(例えば PC9801 キーボード)の場合は 注意が必要です。

### [VT function keys] セクション

VT 端末のファンクションキーを PC キーに割り当てます。

    	形式:
    		<VT function key name>=<PC key code>

    	<VT function key name>
    		(VT 端末のファンクションキー)
    		Hold, Print, Break, F6, F7, F8, F9, F10, F11, F12,
    		F13, F14, Help, Do, F17, F18, F19, F20
    		(VT 端末の"ユーザー定義キー")
    		UDK6, UDK7, UDK8, UDK9, UDK10, UDK11, UDK12, UDK13,
    		UDK14, UDK15, UDK16, UDK17, UDK18, UDK19, UDK20

    	<PC key code>
    		PC key code (10進数)

    	例:
    		F6=64

### [X function keys] セクション

Xterm の F1-F5 キー、およびバックタブキーを PC キーに割り当てます。

    	形式:
    		<Xterm function key name>=<PC key code>

    	<Xterm function key name>
    		XF1, XF2, XF3, XF4, XF5, XBackTab

    	<PC key code>
    		PC key code (10進数)

    	例:
    		XF1=59

### [Shortcut keys] セクション

Tera Term の機能をPC キーに割り当てます。

    	形式:
    		<Shortcut key name>=<PC key code>

    	<Shortcut key name>	機能
    	---------------------------------------------------------
    	EditCopy		[Edit] Copy コマンド
    	EditPaste		[Edit] Paste コマンド
    	EditPasteCR		[Edit] Paste<CR> コマンド
    	EditCLS 		[Edit] Clear screen コマンド
    	EditCLB 		[Edit] Clear buffer コマンド
    	ControlOpenTEK		[Control] Open TEK コマンド
    	ControlCloseTEK 	[Control] Close TEK コマンド
    	LineUp			一行スクロールアップ
    	LineDown		一行スクロールダウン
    	PageUp			一ページスクロールアップ
    	PageDown		一ページスクロールダウン
    	BuffTop 		バッファー先頭へスクロール
    	BuffBottom		バッファー最後へスクロール
    	NextWin 		次の Tera Term ウィンドウへ移動
    	PrevWin 		前の Tera Term ウィンドウへ移動
    	NextShownWin 		次の最小化されていない Tera Term ウィンドウへ移動
    	PrevShownWin 		前の最小化されていない Tera Term ウィンドウへ移動
    	LocalEcho		Local echo を on/off する

    	<PC key code>
    		PC key code (10進数)

    	例:
    		LineUp=1352

### [User keys] セクション

ユーザーキーと、そのキーを押したときに実行される機能 (文字列の送出、マクロファイルの実行、メニューコマンドの実行)を 定義します。

    	形式:
    		<User key name>=<PC key code>,<Control flag>,<文字列>
    		<User key name>=off

    	<User key name>
    		User1, User2, User3,...., User99
    		最大99個まで設定可能

    	<PC key code>
    		PC key code (10進数)

    	<Control flag>
    		キーを押したときに <文字列> をどのように取り扱うかを指定
    		するフラグ。
    			0	<文字列>をそのまま(8bit/文字として)送出する。
    			1	<文字列>に含まれる文字や改行コードを
    				Tera Term の設定にあわせて変換し、変換
    				された文字列を送出する。
    			2	<文字列>のファイル名のマクロファイルを
    				実行する。
    			3	メニュー ID <文字列> で指定される
    				Tera Term のメニューコマンドを実行する。

    	<文字列>:
    		<Control flag> が 0 または 1 の場合、キーを押したときに
    		送出される文字列。表示不可能な文字(制御文字等)はその
    		文字コードを $ と2文字の16進数で表現する。
    		(例: CR 文字は '$0D')。"$" そのものは "$24" で表現する。
    		Tera Term 内部では設定ファイルはUTF-16(16bit/文字)で処理している。
    		<Control flag> が 0 の場合、8bit/文字として処理する。
    		U+0000..U+00FFは$00..$FFとしてそのまま送信する。
    		それ以外は$FFとして送信する。
    			U+0000..U+007F=基本ラテン文字
    			U+0080..U+00FF=ラテン1補助
    		<Control flag> が 1 の場合、
    		Unicode文字列として処理する。

    		<Control flag> が 2 の場合、
    		実行されるマクロファイルのファイル名。

    		<Control flag> が 3 の場合、
    		実行されるメニューコマンドのメニュー ID (数字)。
    		メニュー IDについては「メニュー ID 表」参照。

    	例:
    		User1=1083,0,telnet myhost
    		User2=1084,0,$0D$0A
    		User3=1085,1,こんにちは。
    		User4=1086,2,test.ttl
    		User5=1087,3,50110

## 注意

1つの PC key code はキーボード設定ファイルの中で一回だけ使用することが できます。もし、1つの PC key code を複数のキー定義で使用した場合、 Tera Term がキーボード設定ファイルを読み込んだときに、 "Key code XXX is used more than once" という警告メッセージが表示されます。 この場合ある一つのキー定義だけが有効になり、その他は無視されます。

あるキー設定項目にどの PC キーも割り当てたくない場合は、以下のように PC key code の代わりに "off" を指定してください。

        EditCopy=off

## 可能なキーの組み合わせ

キーボード設定ファイルで設定可能な PC のキーは, KEYCODE.EXE で PC key code が 表示されるキーです。単一のキーだけでなく、Ctrl, Shift, Alt を用いたキーの組み 合わせでも PC key code を表示させることができます。可能な組み合わせを 以下に示します。

    	Shift+key
    	Ctrl+key
    	Shift+Ctrl+key
    	Shift+Alt+key
    	Ctrl+Alt+key
    	Shift+Ctrl+Alt+key

Tera Term や Windows のショートカットキーに割り当てられているキーの組み合わせ (例えば Alt+key など)はキーボード設定ファイルで指定できません。

ただし、Altキーをメタ・キーとして使う設定にしている場合(設定->キーボードにある Metaキーにチェックをいれている状態)はAlt+keyも指定する事ができます。 キーコードは KEYCODE.EXE で調べられますが、単体のAltキーとの組合せには 対応していません。Altキーとの組合せでのキーコードを調べるには、単独での キーコードを調べて、その値に2048を足してください。

たとえば、Alt+Vのキーコードは V が 47 なので、2095 となります。

        ; Shift + Insert
        EditPaste=850

これを例えば EditPaste=2095 に変更すれば、Metaキーをパススルーにしていても Alt+Vで張り付けができるようになります。

Shift+Insertを残したままAlt+Vでの張り付けを行いたい場合は、KEYBOARD.CNF の [User keys]セクションに以下の設定を追加します。

        User1=2095,3,50230

# Q & A

Q. Tera Term を起動するたびに "Key code XXX is used more than once" という メッセージがでる。
A. 注意を参照。

Q. PC の F1 キーを VT100 の PF1 キーとして使いたい。以下のように設定したが うまくいかない。

    	[VT function keys]
    	F1=PF1		(これはまちがい)

A. 左辺は **PC** のキーの名前ではなく **VT端末** のキーの名前を指定しなけ ればなりません。また、右辺にはキーの名前ではなく、キーコードを指定して ください。 また、キー設定を変えるときは、キーコードの重複使用をしないようにして ください。
以下のように設定してください。

    	[VT function keys]
    	PF1=59			(59 は F1 キーのキーコード)
    	[X function keys]
    	;XF1=59			(キーコード 59 の重複使用をさける)
    	XF1=off			("off" で置き換える)

Q. F1 キーを押したときにエスケープシーケンス ESC [ A を送出するように するための設定方法は?
A. ユーザーキーを使えば、好きな文字列を送出することができます。 くわしくは、キーボード設定ファイルの形式を読んでください。 また、キー設定を変えるときは、キーコードの重複使用をしないようにして ください(注意を参照)。
以下のように設定してください。

    	[X function keys]
    	;XF1=59			(F1 キーのキーコード 59 の重複使用をさける)
    	XF1=off			("off" で置き換える)
    	[User keys]
    	User1=59,0,$1B[A		(ESC の ASCII コードは $1B)