readline キーバインディングの読み方

readline キーバインディングの読み方

bind -P私に次の内容を返信してください。

bracketed-paste-begin can be found on "\e[200~".
revert-line can be found on "\e\C-r", "\er".
previous-history can be found on "\C-p", "\eOA", "\e[A".

どうやって読むの?完全な説明はありますか?

ベストアンサー1

readline は、readline(3) と bash(1) に書き込まれるキー入力の順序を指定するために複数の入力形式を受け入れますが、出力形式はより簡単です (私が観察したところによると):

  • \eis Escape(次の文字の前に順次押す)
  • \C-is Control (次の文字と同時に押す)
  • \\バックスラッシュです
  • \"二重引用符です
  • \nnn(nnnは3桁の数字)は8進数のバイトです。
  • 残りはすべてキャラクターそのものです。

順次押すだけでなく、\eareadline(3)のいわゆるMetaキーを押してを入力することもできますa。他の文字も似ています。ほとんどの最新キーボードにはメタキーがないため、これは主に歴史的な命名法と見なすことができます。 PCキーボードはAltキーを使用します。

長いエスケープシーケンス(たとえば、\eOQまたは)は\e[15~手動入力には適していませんが、キーボードの特殊キーによって生成されます。上記の例は、現在マイコンピュータにあるF2とF5です。

質問に表示されるシーケンスは、\e[200~ファンクションキーによって直接生成されません。端末エミュレータは、ユーザーがテキストを入力する代わりに貼り付けたときにテキストを挿入できます。 (この機能はreadline変数によって制御されますenable-bracketed-paste

(特に1970年代と1980年代)異なるキーボードタイプが異なるエスケープシーケンスを生成したため、readlineは多くのコマンドを複数のシーケンスにバインドしました。キーボードでこれらのシーケンスがすべて生成されることを期待しないでください。

キーボードとターミナルエミュレータで生成された結果を表示するには、を使用できますshowkey -a。一部のキーはウィンドウマネージャまたはターミナルエミュレータでキャプチャされます。だから彼らは決して入りませshowkeyreadline

おすすめ記事