* UNIXのキー入力 [#k9992b4d]

** キー入力時の動作フロー [#pc219b11]
- キーボードが打鍵されスキャンコードが発生し、キーコード(RETURNキーなら28、DELキーなら111など)に変わりOSに伝わる。
- OSによってキーコードがkeysym(Delete、Returnなど意味のある言葉)に変換される。
-- これは/lib/kbd以下のキーボードデータベースファイルで定義される。
- 端末エミュレータによってkeysymがエスケープシーケンスに変換される。
-- エスケープシーケンスはCTRL+V [確認したいキー]で見てみることができる。
- エスケープシーケンスがキー特性(ニーモニック)に変換される。
-- 端末データベース(terminfo)によって定義されており、環境変数TERMで切り替えることができる。
-- terminfoの内容はinfocmp linuxなどとして確認できる。

** キー入力の解釈を変える方法 [#vbe472c5]
*** 端末データベースの修正 [#fdf0f170]
 infocmp xterm > xterm.terminfo
 vi xterm.terminfo
 tic xterm.terminfo
  -> .terminfo以下にファイルができる

*** シェルの挙動の修正 [#ffd11c4b]
bindコマンドで
 bind '"\e[3~":backward-delete-char'
 bind '"?e[3~":backward-delete-char'
.inputrcで
 $if term=xterm
 "\e[3~": backward-delete-char
 "?e[3~": backward-delete-char
 $endif 
上のエスケープシーケンスはCTRL+Vを使って入力する事!

** 参考 [#i6af7f57]
http://www.uic.edu/depts/accc/software/the/app2.html
http://www.tldp.org/HOWTO/BackspaceDelete/index.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS