^X^Iのようなシーケンスでは、^文字はどういう意味ですか?

^X^Iのようなシーケンスでは、^文字はどういう意味ですか?

私が読んでいるこのメッセージはzshメーリングリストからのものです。キーバインディングに関してどのキーを押すべきかを知りたいです。

  1. ^X^I(私の考えにはCtrl-X Ctrl-I資本XI
  2. ^[^@(私の考えではCtrl-Esc-@??)
  3. ^X^[q(私の考えではCtrl-X Esc-q??)
  4. ^XQ (Qと思いますかCtrl-X?)

~からzshのArchlinux Wikiページ

  1. ^[[1;3A
  2. ^[[1;3D

~からbindkey

  1. ^[[1;5C
  2. ^[[A

Escを意味することはわかりますが、^[他のものを見つける方法がわかりません。これをリストした公式参考資料やウェブサイトはありますか?

答え1

^cCtrlは+の一般的な記号です。cここで(大文字)文字またはいずれかです@[\]^_。該当するものを指定します制御文字。その関係は、制御文字の数値コードが、印刷可能文字(文字または句読点)の数値コードから64を引いたものであることです。これは、基本2のビットを0に設定するのと同じです。また、^?一般に127という文字が表現される。

一部のキーは制御文字を送信します。

  • Escape= Ctrl+[
  • Tab= Ctrl+I
  • Return(またはEnterまたは)= Ctrl+M
  • Backspace= Ctrl+?またはCtrl+ H(端末の構成によって異なります)

AltMeta(過去のUnixシステムでは、その場所のキー名であったため、通常これと呼ばれます)は、印刷可能な文字と共に送信(エスケープ)され、^[その文字が続きます。

^[ほとんどのファンクションキーとカーソルキーは、文字の後に印刷可能な文字が続くエスケープシーケンスを送信します。詳細は端末とその構成によって異なります。 xterm の場合、デフォルト値は次のドキュメントで説明されています。手動。このマニュアルは初心者のためのマニュアルではありません。以下はいくつかの便利なヒントです。

  • CSI は^[[、エスケープの後に開くかっこが来ることを意味します。
  • SS3 は、^[Oエスケープ文字の後に大文字 -O が続くことを意味します。
  • 「アプリケーションモード」は通常、全画面プログラムが開かれるモードである。歴史的な理由から、一部のキーはこのモードで別のエスケープシーケンスを送信します。 (実際には複数のモードがありますが、実際には競合がないため、重要な場合は両方のモードのエスケープシーケンスをバインドできるため、詳細には説明しません。)
  • 修飾子(Shift、、、Ctrl/ )は数値コードで表されますAltMetaエスケープシーケンスの最後の文字の前にセミコロンと数字を挿入します。ドキュメントのF5send^[[15~Shift+ F5sendの例を見てください^[[15;2~。送信^[[と1文字のカーソルキーX、修飾子を表します。中サイズ、エスケープシーケンスは次のとおりです。^[[1;MX

Xtermは次のとおりですANSI規格これは、物理エンドポイントまでさかのぼる過去の使用量に基づいています。ほとんどの最新の端末エミュレータはANSI規格に準拠しており、すべてではありませんが、いくつかのxterm拡張を実装しています。ただし、端末ごとに若干の違いがあります。

したがって:

  • ^X^I= Ctrl+ X Ctrl+ I= Ctrl+X Tab
  • ^[^@= Ctrl+ Alt+ @= Escape Ctrl+ @。ほとんどの端末では、Ctrl+は= + + = +Space^@送信します。^[^@CtrlAltSpaceEscape CtrlSpace
  • ^X^[q= Ctrl+ X Alt+ q= Ctrl+X Escape q
  • ^XQ= Ctrl+ X Shift+q
  • ^[[A=Up
  • ^[[1;3A= Alt+ UpUp、修飾子を意味する1;M中サイズ)。多くの端末は、実際にはAlt+に対してこれらのエスケープシーケンスを送信しませんcursor key
  • ^[[1;3D= Alt+Left
  • ^[[1;5C= Ctrl+Right

エスケープシーケンスに対応するキーを見つけるための一般的で便利な方法はありません。逆に、シェルプロンプト(または多くの端末ベースのエディタで)でコードの後にCtrl​​+を押すと、V文字通りエスケープシーケンスが挿入されます。

また、見ることができますキーボード入力とテキスト出力はどのように機能しますか?そしてキーバインディングテーブル?

答え2

ギルズは次のような手紙を続けて言及した。

その関係は、制御文字の数字コードが印刷可能文字(文字または文章)の数字コードから64を引いたものであることです。これは、基本2のビットを0に設定するのと同じです。

あなたはできますascii(7)。 8進数を見る:

Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
────────────────────────────────────────────────────────────────────────
000   0     00    NUL '\0' (null character)   100   64    40    @
001   1     01    SOH (start of heading)      101   65    41    A
002   2     02    STX (start of text)         102   66    42    B
003   3     03    ETX (end of text)           103   67    43    C
004   4     04    EOT (end of transmission)   104   68    44    D
005   5     05    ENQ (enquiry)               105   69    45    E
006   6     06    ACK (acknowledge)           106   70    46    F
007   7     07    BEL '\a' (bell)             107   71    47    G
010   8     08    BS  '\b' (backspace)        110   72    48    H
011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
012   10    0A    LF  '\n' (new line)         112   74    4A    J
013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
014   12    0C    FF  '\f' (form feed)        114   76    4C    L
015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
016   14    0E    SO  (shift out)             116   78    4E    N
017   15    0F    SI  (shift in)              117   79    4F    O
020   16    10    DLE (data link escape)      120   80    50    P
021   17    11    DC1 (device control 1)      121   81    51    Q
022   18    12    DC2 (device control 2)      122   82    52    R
023   19    13    DC3 (device control 3)      123   83    53    S
024   20    14    DC4 (device control 4)      124   84    54    T
025   21    15    NAK (negative ack.)         125   85    55    U
026   22    16    SYN (synchronous idle)      126   86    56    V
027   23    17    ETB (end of trans. blk)     127   87    57    W
030   24    18    CAN (cancel)                130   88    58    X
031   25    19    EM  (end of medium)         131   89    59    Y
032   26    1A    SUB (substitute)            132   90    5A    Z
033   27    1B    ESC (escape)                133   91    5B    [
034   28    1C    FS  (file separator)        134   92    5C    \  '\\'
035   29    1D    GS  (group separator)       135   93    5D    ]
036   30    1E    RS  (record separator)      136   94    5E    ^
037   31    1F    US  (unit separator)        137   95    5F    _
...
077   63    3F    ?                           177   127   7F    DEL

このテーブルには著作権とライセンスがあります。

^Hバックスペース文字、^Mキャリッジリターン文字、改行文字^J^Iタブ文字、^[エスケープ文字などに対応します。

答え3

^ 文字はコントロールキーを表します。 ^[はESCAPEまたはASCII 27を生成します。この文脈では、通常、大文字の使用は重要ではなく、^ Aは「a」キーと同時に押すコントロールキーである^ aと同じ意味です。

^[^@ は、ESCAPE の後に control-@ が続くことを意味します。キーボードのレイアウトに応じて「@」を生成するには、ShiftまたはAlt-Grを同時に押す必要があります。

^X^[q は control-x の後に ESCAPE の後に q が続くことを意味します。

^[[1;5C] は、ESCAPE の後に文字列「[1;5C」が続くことを意味します。私にとって、これは、色、太字、斜体などのテキスト属性を変更する端末制御シーケンスのように見えます。

^を使用して制御キーを表すことが標準化されているかどうかはわかりませんが、次のように実行されます。ウィキペディアページ。 ^[と入力してASCII 27を生成することは、おそらくVT100などのDEC端末で始まり、現在は標準です。

関連情報