.inputrcの制御文字について


21

リモートマシンのLinuxアカウントには、次の定義済みの .inputrc

"\e[1~": beginning-of-line
"\e[4~": end-of-line
\e[5~”: history-search-backward
\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on

私は、GNUのbashのマニュアルを読んでいますトピックのを、私はどのような文字シーケンスを説明するセクションを見つけることができていない\e[1~\e[5C\e\e[D意味など、。

私は私がいることをどこかで読んだと思う\eの手段は、meta character(私はあると思いいるAlt私のキーボードで)が、どのような他の制御文字を理解していない[~5Dなどを意味します。

誰もがトピックに関する良いリファレンスを知っていますか?

回答:


21

これらは、「端末」キーボードでさまざまな非英数字キーが押されたときに送信されるANSI制御コードエスケープシーケンスです。

\ eは、ASCIIの「エスケープ」文字(8進033 16進1B 10進27)を意味します。これは、コマンドシーケンスの概要(CSI)の一部です。

Escape [ 2 ~VT220(またはそれ以降)端末で「挿入」というラベルの付いたキーを押すと送信される文字シーケンスです。

これらの規則の多くは、xtermやLinuxコンソール/シェルなどのソフトウェアで採用されています。多くの場合、さまざまな互換性のない方法で拡張されています。

bashのREADLINE関数でのこれらのシーケンスの使用については、readlineのマニュアルページで説明されています。

       2番目の形式「keyseq」:関数名またはマクロ、keyseqは異なります
       上記のキー名から、キーシーケンス全体を示す文字列が
       シーケンスを二重引用符で囲んで指定します。GNU
       次の例のように、Emacsスタイルのキーエスケープを使用できますが、
       記号文字名は認識されません。

          「\ Cu」:ユニバーサル引数
          "\ Cx \ Cr":再読み取り初期化ファイル
          "\ e [11〜": "ファンクションキー1"

エスケープシーケンスは、キーボードのキーこれに対応するのリストを取得するには、次のようなコマンドを使用することができますinfocmp -L -1infocmp -L -1 xterm


優秀な!!それがまさに私が探していたものです。ありがとう@RedGrittyBrick!
アメリオバスケスレイナ

+1。-> = + でCtrlコードを探していました。inputrcENTERCtrln
レンドン

@ user1133275:リンクは更新されましたが、man 3 readline ご使用のシステムのコマンド同じ情報が得られるはずです。このコマンドはWIndows 10のWSLman 3 readlineでも機能します。必要に応じて、問題の原因となっている出力の特定の部分について新しい質問をすることができます。bind -P
RedGrittyBrick
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.