tputでMeta / Altキーを使用する方法は?

tputでMeta / Altキーを使用する方法は?

lisp方言コマンドラインへのキーバインディングをオーバーライドしたいと思います。コマンドラインは実際にViをモデル化し、tput / terminfoを使用して実装されます。私はEmacsキーバインディングを含む代替バージョンが欲しいので、gnu readlineなどを使わずに試してみたいです。

一般的なキー割り当ては次のとおりです。

(setq *XtF1 (in '("tput" "kf1") (line T)) ...

この質問は

("tput" "kf1")

一部を除き、残りは無視します。これで、「kf1」はterminfoのマニュアルページで簡単に見つけることができます。

   key_f1                     kf1     k1    F1 function key

「meta」にも3つの項目があることが確認されました。

   has_meta_key               km      km    Has a meta key
                                            (i.e., sets 8th-bit)

   meta_off                   rmm     mo    turn off meta mode
   meta_on                    smm     mm    turn on meta mode
                                            (8th-bit on)

しかし、この情報を使用してMf、Mb、Mdなどのtputを介して一般的なEmacsキーバインディングを定義するにはどうすればよいですか?

ベストアンサー1

terminfoはおそらくあなたにとって大きな助けにはなりません。ほとんどの端末エミュレータはトランスM-xポート<Esc>xまたはxビット8設定を使用して設定します。ユーザーがこれを行うと、terminfoエントリは魔法のように更新されません。

また、最近のほとんどの文字セットは8ビットなので、メタに8番目のビットを使用することはあまり意味がありません。

M-x私は==(2文字のシーケンスsum)をハードコードしました<Esc>x。これにより、端末がそのモードをサポートしていなくても、ユーザーは順番に順番に入力できます。\033xEscx

おすすめ記事