APPENDIX 2 - KEYBOARD HANDLING


This appendix contains information on how THE handles keystrokes in the U*ix environment. One thing that is consistant with PCs is keyboard handling. Therefore this explanation is not applicable to the PC arena.
この付録は、THEがU*ix環境でキーストロークを取り扱う方法に関するインフォメーションを含みます。PCをもつconsistantである1つのことは、キーボード操作です。 それゆえに、この説明は、PCアリーナに適用できません。

Keystroke handling is a very complicated business! There are so many layers between the physical keyboard and the application; in this case THE. These layers can be best described with the following diagrams:
キーストローク操作は、とても複雑なビジネスです!フィジカル・キーボードとアプリケーションの間にとても多くの層がいます;このケースTHEで。これらの層は、最もよく以下のダイヤグラムで述べることができます:

Text-mode Version of THE using terminal
ターミナルを利用したTHEのテキスト-モード・バージョン

Physical Keyboard
フィジカル・キーボード
|
|
[terminal emulator]
[端末エミュレータ]
|
|
Termcap/Terminfo
Termcap / Terminfo
|
|
Curses
カーソルコントロール
|
|
THE
THE

Text-mode Version of THE using xterm
xtermを利用したTHEのテキスト-モード・バージョン

Physical Keyboard
フィジカル・キーボード
|
|
X11 server
X11サーバー
[xmodmap]
[ xmodmap ]
|
|
xterm
xterm
[translations]
[翻訳]
|
|
Termcap/Terminfo
Termcap / Terminfo
|
|
Curses
カーソルコントロール
|
|
THE
THE

X11 Version of THE
THEのX11バージョン

Physical Keyboard
フィジカル・キーボード
|
|
X11 server
X11サーバー
[xmodmap]
[ xmodmap ]
|
|
PDCurses
PDCurses
[translations]
[翻訳]
|
|
THE
THE

Each layer is described below
それぞれの層は下に述べられます

Physical keyboard
フィジカル・キーボード

Each keyboard is potentially different from every other. The similarity that they do posess is that when a key is pressed, a unique code is generated. The state of the Shift, Control, Num Lock, Alt modifiers either alter the unique code generated or a seperate code is generated to identify to the next layer that the key pressed should be modified.
それぞれのキーボードは、潜在的にその他すべてと違います。posessがキーが押されるときに、独特のコードが発生させられるということである彼(それ)らがする類似。Shift、管理、Numロック、Alt修飾子の状態どちらか発生させられた独特のコード、あるいはコードが発生させられるseperateを変えてキーが押すところでは、変更されるべき次の層に識別して下さい。

terminal emulator
端末エミュレータ

This is a required layer if the user is connected to the host via some emulation software. eg a PC connected to a U*ix host requires a terminal emulator of one sort or another.
もしユーザーがあるエミュレーション・ソフトウェア経由でホストとつながっていれば、これは要求された層です。PCがU* ixホストに結んだegは、なんらかのソートに端末エミュレータを要求します。

The terminal emulator translates the unique codes generated by the keyboard usually into physical escape sequences that are passed to the U*ix shell. These escape sequences can be seen by running the U*ix command cat -v . When you press a key on the keyboard while in cat -v , the escape sequences that the terminal emulator has generated are displayed. Some systems require the Enter key to be pressed before the escape sequence is displayed. The term "escape sequence" is used because in most cases, the first character generated is an Escape character (hex 1B). Following the escape is any number of other characters, which together form a unique sequence of characters.
端末エミュレータは、U* ixシェルにフィジカルパスされるエスケープ・シーケンスへ通常キーボードによって発生させられた独特のコードを訳します。これらのエスケープ・シーケンスは、U* ixコマンド・ネコ- vを走らせることによって見ることができます。ネコ- vで(いる)、あなたがキーボードでキーを押すときに、端末エミュレータが発生させたエスケープ・シーケンスは、表示されます。いくつかのシステムは、エスケープ・シーケンスの前に押される(べき)エンター・キーが表示されることが必要です。( hexの1B)たいていの場合は、文字が発生させた最初であるもの(人)がエスケープ・キャラクタであるという理由で、期間「エスケープ・シーケンス」は、使われます。エスケープの後を追うことは、かなり多くの他の文字です、(共に文字の独特のシーケンスを形づくる)。

When using a terminal directly, firmware on the terminal does the generation of the escape sequences. Some terminals allow the user to specify what escape sequence will be generated when particular keys are pressed.
直接に端末を使うときに、端末のファームウェアは、エスケープ・シーケンスの世代をします。いくつかの端末は、ユーザーに何を(に)特定のキーが押されるときに、エスケープ・シーケンスが発生させられるだろうかを示すことを可能にします。

Termcap/Terminfo
Termcap / Terminfo

Each terminal that connects to a U*ix host is identified by the value of the TERM environment variable. The value of TERM is used to setup various settings for the terminal. These settings are stored in a database; either in a flat file termcap or in a compiled format terminfo . Which one a particular system uses is dependant on the version of the U*ix Operating System being run.
U* ixホストに接続するそれぞれの端末は、期間環境変数の値によって識別されます。期間の値を使って端末のためのいろいろな設定をセットアップします。これらの設定は、データベースで保存されます;平らなファイルtermcapで、またはコンパイルされたフォーマットterminfoで。特定のシステムが使うどちらの1(人)は、動かされるU* ixオペレーティングシステムのバージョンで依存しています。

One of the capabilites of the termcap/terminfo databases is to translate an escape sequence into a keyboard mnemonic that is used by the Curses library functions. This translation can also be changed by the user.
termcap / terminfoデータベースのcapabilitesの1つは、エスケープ・シーケンスをカーソルコントロールライブラリー機能によって使われるキーボード・ニーモニックに訳すはず(こと,予定)です。この翻訳は、また、ユーザーによって変えることができます。

An example of this is:
これの例は:

----------
Termcap: ku=\E[A
Termcap :ku = \ E[ A
Terminfo: kcuu1=\E[A
Terminfo :kcuu1= \ E[ A
----------

This translates the escape sequence ESC [ A into the mnemonic ku or kccu1.
これは、エスケープ・シーケンスESCを訳します[ニーモニックku、あるいはkccu1へのA。

Curses
カーソルコントロール

The Curses library contains definitions of many keys. These can be seen by looking in the Curses header file; usually /usr/include/curses.h Here you will see defintions like:
カーソルコントロールライブラリーは、多くのキーの定義を含みます。これらは、カーソルコントロールヘッダー・ファイルをのぞいて見ることによって見ることができます;通常あなたがdefintionsが好きなのを見るだろうここでの/usr/include/curses.h :

----------
#define KEY_UP 0403 /* up arrow key */
#は、矢キー*上へKEY _ UP0403/*を定義します/
----------

THE
THE

As THE is a Curses-based application, it recognises the Curses key definitions defined in curses.h. As not all escape sequences are usually defined in the Termcap/Terminfo databases, or are defined in curses.h, THE also has special code to decipher other escape sequences.
THEがカーソルコントロールベースのアプリケーションであるので、それは、カーソルコントロールキー定義がcurses.hで定義したことを認めます。必ずしもすべてのエスケープ・シーケンスがTermcap / Terminfoデータベースで通常定義されるかあるいはcurses.hで定義されないので、THEは、他のエスケープ・シーケンスを判読するために、また特別のコードを持っています。

When a key is pressed, and is interpreted by THE, the first action is to check if the value passed to THE is a known curses key. If it is THE carries out any command associated with the key. If the value is not a known curses key, THE assumes that an escape sequence is forthcoming. The module getch.c has code for deciphering many escape sequences that are not normally defined in the Termcap/Terminfo database. Later in this document is a table of escape sequences and its associated curses key.
キーが押されてTHEによって解釈されるときに、最初の活動は、THEにパスされた値が知られたカーソルコントロールキーかどうか確かめるはず(こと,予定)です。もしそれがキャリーなら、外へ、いくらかの(どんな)コマンドは、キーに関連しました。もし値が知られたカーソルコントロールキーでなければ、THEは、エスケープ・シーケンスがまさに現れようとすると仮定します。getch.cにTermcapで多くの通常定義されないエスケープ・シーケンスを判読するためのコードがあるモジュール/ TERMINFOデータベース。後で、このドキュメントで、エスケープ・シーケンスおよびその連合させられたカーソルコントロールのテーブルはキーです。

X11 Server
X11サーバー

When THE is run in a X environemnt, the X server acts in a similar way to terminal emulation software. The principal difference is that there are more layers within the X server. The translation of physical keyboard codes to an X mnemonic is the first layer. The code generated is called a keycode. This keycode is then translated into another higher level mnemonic; a keysym. The keysym is usually a name that resembles the label on the physical keyboard.
THEがX environemntで走らせられるときに、Xサーバーは、ターミナル・エミュレーション・ソフトウェアへの同様の道に出演します。主な違いは、Xサーバーの中により多くの層がいるということです。Xニーモニックへのフィジカル・キーボード・コードの翻訳は、初層です。発生させられたコードは、keycodeと呼ばれます。このkeycodeは、もう一つのより高度なレベル・ニーモニックへその時訳されます;keysym。keysymは、通常フィジカル・キーボードでラベルに似ている名前です。

The X environment provides a mechanism to assign keycodes to keysyms. This is done with the xmodmap command, and any assignment of keycode to keysym is done for all applications within the current X environemnt.
X環境は、keycodesをkeysymsに割り当てるために、機構を提供します。これは、keysymへのkeycodeのコマンド、およびいくらかの(どんな)割り当てが現在のx environemntの中にすべてのアプリケーションのために終わったxmodmapを完全に終えています。

xterm
xterm

The xterm program is a terminal emulation program, and as such has many of the properties of the terminal emulator described above. The xterm program takes keysyms from the X11 server and generates escape sequences, which are defined in the xterm entry in the Termcap/ Terminfo database.
xtermプログラムは、ターミナル・エミュレーション・プログラムです、そして、そのようなものがターミナルの多くの資産を持っているので、エミュレーターは上について述べました。xtermプログラムは、X11サーバーからkeysymsを取って、エスケープ・シーケンスを発生させます、(Termcap / Terminfoデータベースでxtermエントリーで定義される)。

One of the features of xterm is the ability to alter the standard keysym to escape sequence translation. Surprisingly this is via a feature called translations . Not only do these translations enable the user to specify a different escape sequences to be generated, but internal xterm commands can also be assigned. These are beyond the scope of this description. An example of an xterm translation follows:
xtermの特徴の1つは、シーケンス翻訳から逃げるためにスタンダードのkeysymを変える能力です。驚くほど、これは、翻訳と呼ばれる特徴経由でです。これらの翻訳はユーザーが異なるエスケープが発生させられることを順番にならべることを示すことを可能にするというだけではなく、内部のxtermコマンドは、また割当てることができます。これらは、この記述の範囲を越えてです。xterm翻訳の例が後を追うAn :

----------
*VT100.Translations: #override\n\
* VT100.Translations : #手数料\ n \
<Key>F1: string(0x1b) string("[192z")\n\
<キー> F1:ストリング(0x1b )ストリング( " [192z " ) \ n \
<Key>F2: string(0x1b) string("[193z")\n
<キー> F2:ストリング(0x1b )ストリング( " [193z " ) \ n
----------

This specification is typically part of your own $HOME/.Xdefaults file. This file is usually read dynamically by the xterm program on startup. On some systems, the .Xdefaults file is ignored. To ensure the entries are incorporated into the X server resource database, run the command:
この規格が一般的に一部分は自分自身のものですHOMEの/.Xdefaultsがファイルする$。このファイルは、スタートアップでxtermプログラムによって通常動的に読まれます。いくつかのシステムで、その。Xdefaultsファイルは無視されます。エントリーがXサーバー・リソース・データベースへ編入されるということを確認するために、コマンドを走らせて下さい:

----------
xrdb -merge .Xdefaults
xrdb -マージします。Xdefaults
----------

The above example will generate the escape sequence ESC [ 1 9 2 z when the F1 key is pressed. The trailing "\" is a continuation character.
上記の例は、エスケープ・シーケンスESCを発生させるでしょう[192つのF1キーが押されるz。後から追っている「\」は、継続文字です。

So, if you had the above translation in effect, and were running THE in an xterm, and ran the SHOWKEY command, pressing the F1 key would result in THE responding with F11.
したがって、もしあなたがF1を押して、上記の事実上の翻訳をしてxtermの走っているTHEであってSHOWKEYコマンドを動かしたらキーは、F11で答えるTHEの結果になるでしょう。

PDCurses
PDCurses

The actions performed by PDCurses in the X environment combine the xterm, Termcap/Terminfo and curses actions. This results in fewer layers to be traversed.
X環境でPDCursesによってされた活動は、xterm、Termcap / Terminfo、およびカーソルコントロール活動を結び合わせます。これは、横ぎられる(べき)よりわずかな層の結果になります。

PDCurses takes a keysym from the X server and converts it into a Curses key code. PDCurses also has the same translation capabilities as does xterm. The xterm example above would look like:
PDCursesは、Xサーバーからkeysymを取って、カーソルコントロールキー・コードへそれを変えます。PDCursesは、また、雌xtermと同じ翻訳能力を持っています。上記の例が似ているだろうxterm :

----------
*the.Translations: #override\n\
* the.Translations : #手数料\ n \
<Key>F1: string(0x1b) string("[192z")\n\
<キー> F1:ストリング(0x1b )ストリング( " [192z " ) \ n \
<Key>F2: string(0x1b) string("[193z")\n
<キー> F2:ストリング(0x1b )ストリング( " [193z " ) \ n
----------

All the details described in xterm as far as translations are concerned hold for translations in PDCurses.
翻訳に関する限りxtermで述べられたすべての詳細は、PDCursesで翻訳のために保持します。

Another capability that translations offer is the ability to assign international characters to alphabetic characters, while still having the alphabetic characters available. For example, the translations below assigns the action of the Shifted Meta key and A, giving a capital A with a grave accent, and the unshifted Meta key and A giving a small A with a grave accent.
翻訳が提供するもう一つの能力は、アルファベットの文字にとってインターナショナルの文字を割当てる能力です、まだ持っている間にアルファベットの文字あります.例えば、以下の翻訳は、Shifted Metaキー、およびA、墓のアクセント、およびunshiftedのMetaキーがある首都Aを与えることおよび墓のアクセントをもつ小さいAを与えることの活動を割当てます。

----------
*the.Translations: #override\n\
* the.Translations : #手数料\ n \
!Shift Meta <Key>a: string(0xc0) \n\
!ShiftMeta <キー> a:ストリング(0xc0) \n\
!Meta <Key>a: string(0xe0) \n
!Meta <キー> a:ストリング(0xe0) \n
----------

The examples above assume you are using a font with a character set that is compatible with ISO 8859-1.
上記の例は、あなたがISOと互換性があるキャラクタ・セット8859-1をもつフォントを使っていると仮定します。

THE Escape Sequence to Key Name Mapping
キー名前マッピングへのエスケープ・シーケンス

Escape Sequence
エスケープ・シーケンス
Curses Key
カーソルコントロールキー
THE Key Name
キー名前
(pre) 1 ~
( pre )1つの~
(pre) 2 ~
( pre )2~
(pre) 3 ~
( pre )3~
(pre) 4 ~
( pre )4~
(pre) 5 ~
( pre )5~
(pre) 6 ~
( pre )6~
(pre) 1 1 ~
( pre )11つの~
(pre) 1 2 ~
( pre )12~
(pre) 1 3 ~
( pre )13~
(pre) 1 4 ~
( pre )14~
(pre) 1 5 ~
( pre )15~
(pre) 1 7 ~
( pre )17~
(pre) 1 8 ~
( pre )18~
(pre) 1 9 ~
( pre )19~
(pre) 2 0 ~
( pre )20~
(pre) 2 1 ~
( pre )21つの~
(pre) 2 3 ~
( pre )23~
(pre) 2 4 ~
( pre )24~
(pre) 2 5 ~
( pre )25~
(pre) 2 6 ~
( pre )26~
(pre) 2 8 ~
( pre )28~
(pre) 2 9 ~
( pre )29~
(pre) 3 1 ~
( pre )31つの~
(pre) 3 2 ~
( pre )32~
(pre) 3 3 ~
( pre )33~
(pre) 3 4 ~
( pre )34~
(pre) 3 7 ~
( pre )37~
(pre) 3 8 ~
( pre )38~
(pre) 3 9 ~
( pre )39~
(pre) 4 0 ~
( pre )40~
(pre) 4 1 ~
( pre )41つの~
(pre) 4 2 ~
( pre )42~
(pre) 4 3 ~
( pre )43~
(pre) 4 4 ~
( pre )44~
(pre) 4 5 ~
( pre )45~
(pre) 4 6 ~
( pre )46~
(pre) 4 7 ~
( pre )47~
(pre) 4 8 ~
( pre )48~
(pre) 4 9 ~
( pre )49~
(pre) 5 0 ~
( pre )50~
(pre) 5 1 ~
( pre )51つの~
(pre) 5 2 ~
( pre )52~
(pre) 5 3 ~
( pre )53~
(pre) 5 4 ~
( pre )54~
(pre) 5 5 ~
( pre )55~
(pre) 5 6 ~
( pre )56~
(pre) 5 7 ~
( pre )57~
(pre) 5 8 ~
( pre )58~
(pre) 5 9 ~
( pre )59~
(pre) 6 0 ~
( pre )60~
(pre) A
( pre ) A
(pre) B
( pre ) B
(pre) C
( pre ) C
(pre) D
( pre ) D
(pre) F
( pre ) F
(pre) G
( pre ) G
(pre) H
( pre ) H
(pre) I
( pre )私
(pre) L
( pre ) L
(pre) M
( pre ) M
(pre) N
( pre ) N
(pre) O
( pre ) O
(pre) P
( pre ) P
(pre) Q
( pre ) Q
(pre) R
( pre ) R
(pre) S
( pre ) S
(pre) T
( pre ) T
(pre) U
( pre ) U
(pre) V
( pre ) V
(pre) W
( pre ) W
(pre) X
( pre ) X
(pre) Z
( pre ) Z
(pre) l
( pre ) l
(pre) m
( pre ) m
(pre) n
( pre ) n
(pre) o
( pre ) o
(pre) p
( pre ) p
(pre) q
( pre ) q
(pre) r
( pre ) r
(pre) s
( pre ) s
(pre) t
( pre ) t
(pre) u
( pre ) u
(pre) v
( pre ) v
(pre) w
( pre ) w
(pre) x
( pre ) x
(pre) y
( pre ) y
(pre) 1 z
( pre )1つのz
(pre) 2 z
( pre )2z
(pre) 3 z
( pre )3z
(pre) 4 z
( pre )4z
(pre) 5 z
( pre )5z
(pre) 6 z
( pre )6z
(pre) 1 9 5 z
( pre )195z
(pre) 2 1 4 z
( pre )214z
(pre) 2 1 5 z
( pre )215z
(pre) 2 1 6 z
( pre )216z
(pre) 2 1 7 z
( pre )217z
(pre) 2 1 9 z
( pre )219z
(pre) 2 2 0 z
( pre )220z
(pre) 2 2 1 z
( pre )221つのz
(pre) 2 2 2 z
( pre )222z
(pre) 2 2 4 z
( pre )224z
(pre) 2 2 5 z
( pre )225z
(pre) 2 2 6 z
( pre )226z
(pre) 2 2 7 z
( pre )227z
(pre) 2 2 8 z
( pre )228z
(pre) 2 2 9 z
( pre )229z
(pre) 2 3 0 z
( pre )230z
(pre) 2 3 1 z
( pre )231つのz
(pre) 2 3 2 z
( pre )232z
(pre) 2 3 3 z
( pre )233z
(pre) 2 3 4 z
( pre )234z
(pre) 2 3 5 z
( pre )235z
(pre) 3 2 4 z
( pre )324z
(pre) 3 2 5 z
( pre )325z
(pre) 3 2 6 z
( pre )326z
(pre) 3 2 7 z
( pre )327z
(pre) 3 2 8 z
( pre )328z
(pre) 3 2 9 z
( pre )329z
(pre) 3 3 0 z
( pre )330z
(pre) 3 3 1 z
( pre )331つのz
(pre) 3 3 2 z
( pre )332z
(pre) 3 3 3 z
( pre )333z
(pre) 3 3 4 z
( pre )334z
(pre) 3 3 5 z
( pre )335z
(pre) 4 1 4 z
( pre )414z
(pre) 4 1 5 z
( pre )415z
(pre) 4 1 6 z
( pre )416z
(pre) 4 1 7 z
( pre )417z
(pre) 4 1 9 z
( pre )419z
(pre) 4 2 0 z
( pre )420z
(pre) 4 2 1 z
( pre )421つのz
(pre) 4 2 2 z
( pre )422z
(pre) 4 2 3 z
( pre )423z
(pre) 4 2 4 z
( pre )424z
(pre) 4 2 5 z
( pre )425z
(pre) 4 2 6 z
( pre )426z
(pre) 4 2 7 z
( pre )427z
(pre) 4 2 8 z
( pre )428z
(pre) 4 2 9 z
( pre )429z
(pre) 4 3 0 z
( pre )430z
(pre) 4 3 1 z
( pre )431つのz
(pre) 4 3 2 z
( pre )432z
(pre) 4 3 3 z
( pre )433z
(pre) 4 3 4 z
( pre )434z
(pre) 4 3 5 z
( pre )435z
(pre) 1 9 2 z
( pre )192z
(pre) 1 9 3 z
( pre )193z
(pre) 2 9 2 z
( pre )292z
(pre) 2 9 3 z
( pre )293z
(pre) [ A
( pre ) [ A
(pre) [ B
( pre ) [ B
(pre) [ C
( pre ) [ C
(pre) [ D
( pre ) [ D
(pre) [ E
( pre ) [ E
(pre) 0 q
( pre )0q
(pre) 1 q
( pre )1つのq
(pre) 2 q
( pre )2q
(pre) 3 q
( pre )3q
(pre) 4 q
( pre )4q
(pre) 5 q
( pre )5q
(pre) 6 q
( pre )6q
(pre) 7 q
( pre )7q
(pre) 8 q
( pre )8q
(pre) 9 q
( pre )9q
(pre) 1 0 q
( pre )10q
(pre) 1 1 q
( pre )11つのq
(pre) 1 2 q
( pre )12q
(pre) 1 3 q
( pre )13q
(pre) 1 4 q
( pre )14q
(pre) 1 5 q
( pre )15q
(pre) 1 6 q
( pre )16q
(pre) 1 7 q
( pre )17q
(pre) 1 8 q
( pre )18q
(pre) 1 9 q
( pre )19q
(pre) 2 0 q
( pre )20q
(pre) 2 1 q
( pre )21つのq
(pre) 2 2 q
( pre )22q
(pre) 2 3 q
( pre )23q
(pre) 2 4 q
( pre )24q
(pre) 2 5 q
( pre )25q
(pre) 2 6 q
( pre )26q
(pre) 2 7 q
( pre )27q
(pre) 2 8 q
( pre )28q
(pre) 2 9 q
( pre )29q
(pre) 3 0 q
( pre )30q
(pre) 3 1 q
( pre )31つのq
(pre) 3 2 q
( pre )32q
(pre) 3 3 q
( pre )33q
(pre) 3 4 q
( pre )34q
(pre) 3 5 q
( pre )35q
(pre) 3 6 q
( pre )36q
(pre) 1 3 9 q
( pre )139q
(pre) 1 5 0 q
( pre )150q
(pre) 1 4 6 q
( pre )146q
(pre) 1 5 4 q
( pre )154q
ESC P
ESC P
ESC Q
ESC Q
ESC R
ESC R
ESC S
ESC S
KEY_Find
_が見つけるキー
KEY_InsertHere
基本的な_ InsertHere
KEY_Remove
基本的な_リムーブ
KEY_Select
基本的な_セレクト
KEY_PrevScreen
基本的な_ PrevScreen
KEY_NextScreen
基本的な_


The Hessling Editor is Copyright © Mark Hessling, 1990-1999 <M.Hessling@qut.edu.au>

KNE Japanese Localization is written by Kunimasa Noda<kuni@pm9.com>
Generated on: 21 Jan 2000