Bashでショートカットを再マップするためのターミナルキーコードのリストはどこにありますか?

Bashでショートカットを再マップするためのターミナルキーコードのリストはどこにありますか?

たとえば、

"\e[1;5C"
"\e[Z"
"\e-1\C-i"

\e私はescapeを表すものとC-forなどいくつかの部分だけ知っていますが、Ctrlこの数字(1)と文字()Zは何ですか?;[および記号は何を表しますか-

試行錯誤に過ぎませんか、それともbashキーコードの完全なリストとその構文が説明されていますか?

答え1

これは、特定のキーを押すと端末から送信される一連の文字です。 bashやreadline自体とは何の関係もありませんが、特定のキーが押されたときに実行されるアクションを設定するには、特定のreadlineキーまたはキーの組み合わせで送信される文字の順序を知る必要があります。

このキーを押すと、A通常、端末はa(0x61)文字を送信します。<Ctrl-I>またはを<Tab>押すと、通常^I送信される文字もTABまたは\t(0x9)として呼び出されます。ほとんどのファンクションキーとナビゲーションキーは、通常(または0x1b、8進数033)^[とも呼ばれる(control-[)で始まる一連の文字を送信しますが、正確な順序は端末によって異なります。ESC\e

キーまたはキーの組み合わせが端末に送信する内容を見つけるための最良の方法は、そのキーを実行してキーボードから入力することですsed -n lEnterこれにより、次の内容が表示されます。

$ sed -n l
^[[1;5A
\033[1;5A$

最初の行は、echo端末装置によって実行されるローカル端末によって引き起こされます(端末装置の設定が影響を与える可能性があるため、信頼できません)。

2行目はで出力されますsed。含まれていない$、単に行の終わりがどこにあるかを示します。

上記は、Ctrl-Up(私が押したもの)6文字、、、、およびESC(0x1b 0x5b 0x31 0x3b 0x35 0x41)を送信することを意味します。[1;5A

データベースは、複数のエンドポイントに対する複数の公開鍵のterminfo複数のシーケンス(値ベース)を記録します。$TERM

たとえば、

TERM=rxvt tput kdch1 | sed -n l

rxvtキーを押したときにどのエスケープシーケンスが送信されるかを知らせますDelete

現在の端末を使用して、特定のシーケンスに対応するキーを見つけることができます(ここではinfocmpinfocmpと仮定)。ncurses

$ infocmp -L1 | grep -F '=\E[Z'
    back_tab=\E[Z,
    key_btab=\E[Z,

このようなキーの組み合わせはCtrl-Upデータベースに対応する項目がないため、それらの送信内容を理解するには、その端末のソースコードやマニュアルを読んでterminfoください。sed -n l

答え2

readlineGNUライブラリを介して提供されます。あなたはそれを調査する必要がありますman 3 readline説明をご覧ください。

エスケープコードなどの意味についての\[A情報も必要なようです。この情報はウィキペディアにあります。ANSIエスケープコード記事。

答え3

キーまたはキーの組み合わせによって生成されたエスケープシーケンスを確認する最も簡単な方法は、端末で+を押してCtrlから、知りたいキー/組み合わせを押すことです。v

同様のシーケンスが得られ、キーバインディングシステムが期待するエスケープ文字に変換するか、別の表現に^[Oa変換する必要があります。^[\e\033\x1b

これはandと呼ばれるEmacs関数で始まり、quoted-insertBashとZshの主キーバインディングはEmacsを模倣しているため、これもコピーしました。

import rlcompleterBashは、Pythonの拡張やその他の機能でも使用されるGNU Readline入力ライブラリを介してそれらをインポートします。

からの説明ですオンラインマニュアルを読む:

quoted-insertC-qまたはC-v

入力して文字を文字通り追加します。たとえば、キーシーケンスを挿入する方法は次のとおりですC-q

これはうまくいくはずです何もないGNU Readlineに基づいています。

C-qZshの場合、Viモードでのみ元のEmacsバインディングを尊重しますが、皮肉なことに、デフォルトのC-vEmacsに似た入力モードではまだ機能する独自の代替手段であるZLEを使用します。 (またはマニュアルページquoted-insertで検索した場合は、2番目の結果ペアに主キーバインディングを一覧表示する必要があります。)zshzlezshall

Ctrlニーモニックの場合は、+をリクエストvとして扱うことをお勧めします。Vエルバチーム。

答え4

Ctrl+はV特定の文字でのみ機能します(ボリュームキー、、、、、は表示されません)。 Cvは逆翻訳も許可しませんTab。つまり、既存のバインディングとそのキーが表すキーを見ることはできません。CapsPrint ScreenHomeEndPauseMute

最も重要な役割には効果的ですが、最善の方法は次を使用することです。

dumpkey -1 >> mapreference

フルキーコードテーブル(キーを押すたびに特定のキーボードが送信する信号)を取得します。これらのキーコードはマップファイル(Arch:/usr/share/kbd/keymap/*/**フォルダにあります)と一致しますが、dumpkeysすべてのマッピングが1つの場所に保存されるため、簡単です。

次に、入力した形式に基づいてテーブルを変換する必要があります。

ASCII変換テーブル

8進数

  000 NUL   020 DLE   040     060 0   100 @   120 P   140 `   160 p 
  001 SOH   021 DC1   041 !   061 1   101 A   121 Q   141 a   161 q 
  002 STX   022 DC2   042 "   062 2   102 B   122 R   142 b   162 r 
  003 ETX   023 DC3   043 #   063 3   103 C   123 S   143 c   163 s 
  004 EOT   024 DC4   044 $   064 4   104 D   124 T   144 d   164 t 
  005 ENQ   025 NAK   045 %   065 5   105 E   125 U   145 e   165 u 
  006 ACK   026 SYN   046 &   066 6   106 F   126 V   146 f   166 v 
  007 BEL   027 ETB   047 '   067 7   107 G   127 W   147 g   167 w 
  010 BS    030 CAN   050 (   070 8   110 H   130 X   150 h   170 x 
  011 HT    031 EM    051 )   071 9   111 I   131 Y   151 i   171 y 
  012 LF    032 SUB   052 *   072 :   112 J   132 Z   152 j   172 z 
  013 VT    033 ESC   053 +   073 ;   113 K   133 [   153 k   173 { 
  014 FF    034 FS    054 ,   074 <   114 L   134 \   154 l   174 | 
  015 CR    035 GS    055 -   075 =   115 M   135 ]   155 m   175 } 
  016 SO    036 RS    056 .   076 >   116 N   136 ^   156 n   176 ~ 
  017 SI    037 US    057 /   077 ?   117 O   137 _   157 o   177 DEL 

バイナリ

   0000000 NUL    0010000 DLE    0100000      0110000 0    1000000 @    1010000 P    1100000 `    1110000 p
   0000001 SOH    0010001 DC1    0100001 !    0110001 1    1000001 A    1010001 Q    1100001 a    1110001 q
   0000010 STX    0010010 DC2    0100010 "    0110010 2    1000010 B    1010010 R    1100010 b    1110010 r
   0000011 ETX    0010011 DC3    0100011 #    0110011 3    1000011 C    1010011 S    1100011 c    1110011 s
   0000100 EOT    0010100 DC4    0100100 $    0110100 4    1000100 D    1010100 T    1100100 d    1110100 t
   0000101 ENQ    0010101 NAK    0100101 %    0110101 5    1000101 E    1010101 U    1100101 e    1110101 u
   0000110 ACK    0010110 SYN    0100110 &    0110110 6    1000110 F    1010110 V    1100110 f    1110110 v
   0000111 BEL    0010111 ETB    0100111 '    0110111 7    1000111 G    1010111 W    1100111 g    1110111 w
   0001000 BS     0011000 CAN    0101000 (    0111000 8    1001000 H    1011000 X    1101000 h    1111000 x
   0001001 HT     0011001 EM     0101001 )    0111001 9    1001001 I    1011001 Y    1101001 i    1111001 y
   0001010 LF     0011010 SUB    0101010 *    0111010 :    1001010 J    1011010 Z    1101010 j    1111010 z
   0001011 VT     0011011 ESC    0101011 +    0111011 ;    1001011 K    1011011 [    1101011 k    1111011 {
   0001100 FF     0011100 FS     0101100 ,    0111100 <    1001100 L    1011100 \    1101100 l    1111100 |
   0001101 CR     0011101 GS     0101101 -    0111101 =    1001101 M    1011101 ]    1101101 m    1111101 }
   0001110 SO     0011110 RS     0101110 .    0111110 >    1001110 N    1011110 ^    1101110 n    1111110 ~
   0001111 SI     0011111 US     0101111 /    0111111 ?    1001111 O    1011111 _    1101111 o    1111111 DEL

UTF-8

Unicode 
Code Point         Character           UTF-8(hex)         Name

U+0000                                  00               <control>
U+0001                                  01               <control>
U+0002                                  02               <control>
U+0003                                  03               <control>
U+0004                                  04               <control>
U+0005                                  05               <control>
U+0006                                  06               <control>
U+0007                                  07               <control>
U+0008                                  08               <control>
U+0009                                  09               <control>
U+000A                                  0a               <control>
U+000B                                  0b               <control>
U+000C                                  0c               <control>
U+000D                                  0d               <control>
U+000E                                  0e               <control>
U+000F                                  0f               <control>
U+0010                                  10               <control>
U+0011                                  11               <control>
U+0012                                  12               <control>
U+0013                                  13               <control>
U+0014                                  14               <control>
U+0015                                  15               <control>
U+0016                                  16               <control>
U+0017                                  17               <control>
U+0018                                  18               <control>
U+0019                                  19               <control>
U+001A                                  1a               <control>
U+001B                                  1b               <control>
U+001C                                  1c               <control>
U+001D                                  1d               <control>
U+001E                                  1e               <control>
U+001F                                  1f               <control>
U+0020                                  20               SPACE
U+0021                  !               21               EXCLAMATION MARK
U+0022                  "               22               QUOTATION MARK
U+0023                  #               23               NUMBER SIGN
U+0024                  $               24               DOLLAR SIGN
U+0025                  %               25               PERCENT SIGN
U+0026                  &               26               AMPERSAND
U+0027                  '               27               APOSTROPHE
U+0028                  (               28               LEFT PARENTHESIS
U+0029                  )               29               RIGHT PARENTHESIS
U+002A                  *               2a               ASTERISK
U+002B                  +               2b               PLUS SIGN
U+002C                  ,               2c               COMMA
U+002D                  -               2d               HYPHEN-MINUS
U+002E                  .               2e               FULL STOP
U+002F                  /               2f               SOLIDUS
U+0030                  0               30               DIGIT ZERO
U+0031                  1               31               DIGIT ONE
U+0032                  2               32               DIGIT TWO
U+0033                  3               33               DIGIT THREE
U+0034                  4               34               DIGIT FOUR
U+0035                  5               35               DIGIT FIVE
U+0036                  6               36               DIGIT SIX
U+0037                  7               37               DIGIT SEVEN
U+0038                  8               38               DIGIT EIGHT
U+0039                  9               39               DIGIT NINE
U+003A                  :               3a               COLON
U+003B                  ;               3b               SEMICOLON
U+003C                  <               3c               LESS-THAN SIGN
U+003D                  =               3d               EQUALS SIGN
U+003E                  >               3e               GREATER-THAN SIGN
U+003F                  ?               3f               QUESTION MARK
U+0040                  @               40               COMMERCIAL AT
U+0041                  A               41               LATIN CAPITAL LETTER A
U+0042                  B               42               LATIN CAPITAL LETTER B
U+0043                  C               43               LATIN CAPITAL LETTER C
U+0044                  D               44               LATIN CAPITAL LETTER D
U+0045                  E               45               LATIN CAPITAL LETTER E
U+0046                  F               46               LATIN CAPITAL LETTER F
U+0047                  G               47               LATIN CAPITAL LETTER G
U+0048                  H               48               LATIN CAPITAL LETTER H
U+0049                  I               49               LATIN CAPITAL LETTER I
U+004A                  J               4a               LATIN CAPITAL LETTER J
U+004B                  K               4b               LATIN CAPITAL LETTER K
U+004C                  L               4c               LATIN CAPITAL LETTER L
U+004D                  M               4d               LATIN CAPITAL LETTER M
U+004E                  N               4e               LATIN CAPITAL LETTER N
U+004F                  O               4f               LATIN CAPITAL LETTER O
U+0050                  P               50               LATIN CAPITAL LETTER P
U+0051                  Q               51               LATIN CAPITAL LETTER Q
U+0052                  R               52               LATIN CAPITAL LETTER R
U+0053                  S               53               LATIN CAPITAL LETTER S
U+0054                  T               54               LATIN CAPITAL LETTER T
U+0055                  U               55               LATIN CAPITAL LETTER U
U+0056                  V               56               LATIN CAPITAL LETTER V
U+0057                  W               57               LATIN CAPITAL LETTER W
U+0058                  X               58               LATIN CAPITAL LETTER X
U+0059                  Y               59               LATIN CAPITAL LETTER Y
U+005A                  Z               5a               LATIN CAPITAL LETTER Z
U+005B                  [               5b               LEFT SQUARE BRACKET
U+005C                  \               5c               REVERSE SOLIDUS
U+005D                  ]               5d               RIGHT SQUARE BRACKET
U+005E                  ^               5e               CIRCUMFLEX ACCENT
U+005F                  _               5f               LOW LINE
U+0060                  `               60               GRAVE ACCENT
U+0061                  a               61               LATIN SMALL LETTER A
U+0062                  b               62               LATIN SMALL LETTER B
U+0063                  c               63               LATIN SMALL LETTER C
U+0064                  d               64               LATIN SMALL LETTER D
U+0065                  e               65               LATIN SMALL LETTER E
U+0066                  f               66               LATIN SMALL LETTER F
U+0067                  g               67               LATIN SMALL LETTER G
U+0068                  h               68               LATIN SMALL LETTER H
U+0069                  i               69               LATIN SMALL LETTER I
U+006A                  j               6a               LATIN SMALL LETTER J
U+006B                  k               6b               LATIN SMALL LETTER K
U+006C                  l               6c               LATIN SMALL LETTER L
U+006D                  m               6d               LATIN SMALL LETTER M
U+006E                  n               6e               LATIN SMALL LETTER N
U+006F                  o               6f               LATIN SMALL LETTER O
U+0070                  p               70               LATIN SMALL LETTER P
U+0071                  q               71               LATIN SMALL LETTER Q
U+0072                  r               72               LATIN SMALL LETTER R
U+0073                  s               73               LATIN SMALL LETTER S
U+0074                  t               74               LATIN SMALL LETTER T
U+0075                  u               75               LATIN SMALL LETTER U
U+0076                  v               76               LATIN SMALL LETTER V
U+0077                  w               77               LATIN SMALL LETTER W
U+0078                  x               78               LATIN SMALL LETTER X
U+0079                  y               79               LATIN SMALL LETTER Y
U+007A                  z               7a               LATIN SMALL LETTER Z
U+007B                  {               7b               LEFT CURLY BRACKET
U+007C                  |               7c               VERTICAL LINE
U+007D                  }               7d               RIGHT CURLY BRACKET
U+007E                  ~               7e               TILDE
U+007F                                  7f               <control>
U+0080                                  c2 80            <control>
U+0081                                  c2 81            <control>
U+0082                                  c2 82            <control>
U+0083                                  c2 83            <control>
U+0084                                  c2 84            <control>
U+0085                                  c2 85            <control>
U+0086                                  c2 86            <control>
U+0087                                  c2 87            <control>
U+0088                                  c2 88            <control>
U+0089                                  c2 89            <control>
U+008A                                  c2 8a            <control>
U+008B                                  c2 8b            <control>
U+008C                                  c2 8c            <control>
U+008D                                  c2 8d            <control>
U+008E                                  c2 8e            <control>
U+008F                                  c2 8f            <control>
U+0090                                  c2 90            <control>
U+0091                                  c2 91            <control>
U+0092                                  c2 92            <control>
U+0093                                  c2 93            <control>
U+0094                                  c2 94            <control>
U+0095                                  c2 95            <control>
U+0096                                  c2 96            <control>
U+0097                                  c2 97            <control>
U+0098                                  c2 98            <control>
U+0099                                  c2 99            <control>
U+009A                                  c2 9a            <control>
U+009B                                  c2 9b            <control>
U+009C                                  c2 9c            <control>
U+009D                                  c2 9d            <control>
U+009E                                  c2 9e            <control>
U+009F                                  c2 9f            <control>
U+00A0                                  c2 a0            NO-BREAK SPACE
U+00A1                  ¡               c2 a1            INVERTED EXCLAMATION MARK
U+00A2                  ¢               c2 a2            CENT SIGN
U+00A3                  £               c2 a3            POUND SIGN
U+00A4                  ¤               c2 a4            CURRENCY SIGN
U+00A5                  ¥               c2 a5            YEN SIGN
U+00A6                  ¦               c2 a6            BROKEN BAR
U+00A7                  §               c2 a7            SECTION SIGN
U+00A8                  ¨               c2 a8            DIAERESIS
U+00A9                  ©               c2 a9            COPYRIGHT SIGN
U+00AA                  ª               c2 aa            FEMININE ORDINAL INDICATOR
U+00AB                  «               c2 ab            LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
U+00AC                  ¬               c2 ac            NOT SIGN
U+00AD                  ­                c2 ad            SOFT HYPHEN
U+00AE                  ®               c2 ae            REGISTERED SIGN
U+00AF                  ¯               c2 af            MACRON
U+00B0                  °               c2 b0            DEGREE SIGN
U+00B1                  ±               c2 b1            PLUS-MINUS SIGN
U+00B2                  ²               c2 b2            SUPERSCRIPT TWO
U+00B3                  ³               c2 b3            SUPERSCRIPT THREE
U+00B4                  ´               c2 b4            ACUTE ACCENT
U+00B5                  µ               c2 b5            MICRO SIGN
U+00B6                  ¶               c2 b6            PILCROW SIGN
U+00B7                  ·               c2 b7            MIDDLE DOT
U+00B8                  ¸               c2 b8            CEDILLA
U+00B9                  ¹               c2 b9            SUPERSCRIPT ONE
U+00BA                  º               c2 ba            MASCULINE ORDINAL INDICATOR
U+00BB                  »               c2 bb            RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
U+00BC                  ¼               c2 bc            VULGAR FRACTION ONE QUARTER
U+00BD                  ½               c2 bd            VULGAR FRACTION ONE HALF
U+00BE                  ¾               c2 be            VULGAR FRACTION THREE QUARTERS
U+00BF                  ¿               c2 bf            INVERTED QUESTION MARK
U+00C0                  À               c3 80            LATIN CAPITAL LETTER A WITH GRAVE
U+00C1                  Á               c3 81            LATIN CAPITAL LETTER A WITH ACUTE
U+00C2                  Â               c3 82            LATIN CAPITAL LETTER A WITH CIRCUMFLEX
U+00C3                  Ã               c3 83            LATIN CAPITAL LETTER A WITH TILDE
U+00C4                  Ä               c3 84            LATIN CAPITAL LETTER A WITH DIAERESIS
U+00C5                  Å               c3 85            LATIN CAPITAL LETTER A WITH RING ABOVE
U+00C6                  Æ               c3 86            LATIN CAPITAL LETTER AE
U+00C7                  Ç               c3 87            LATIN CAPITAL LETTER C WITH CEDILLA
U+00C8                  È               c3 88            LATIN CAPITAL LETTER E WITH GRAVE
U+00C9                  É               c3 89            LATIN CAPITAL LETTER E WITH ACUTE
U+00CA                  Ê               c3 8a            LATIN CAPITAL LETTER E WITH CIRCUMFLEX
U+00CB                  Ë               c3 8b            LATIN CAPITAL LETTER E WITH DIAERESIS
U+00CC                  Ì               c3 8c            LATIN CAPITAL LETTER I WITH GRAVE
U+00CD                  Í               c3 8d            LATIN CAPITAL LETTER I WITH ACUTE
U+00CE                  Î               c3 8e            LATIN CAPITAL LETTER I WITH CIRCUMFLEX
U+00CF                  Ï               c3 8f            LATIN CAPITAL LETTER I WITH DIAERESIS
U+00D0                  Ð               c3 90            LATIN CAPITAL LETTER ETH
U+00D1                  Ñ               c3 91            LATIN CAPITAL LETTER N WITH TILDE
U+00D2                  Ò               c3 92            LATIN CAPITAL LETTER O WITH GRAVE
U+00D3                  Ó               c3 93            LATIN CAPITAL LETTER O WITH ACUTE
U+00D4                  Ô               c3 94            LATIN CAPITAL LETTER O WITH CIRCUMFLEX
U+00D5                  Õ               c3 95            LATIN CAPITAL LETTER O WITH TILDE
U+00D6                  Ö               c3 96            LATIN CAPITAL LETTER O WITH DIAERESIS
U+00D7                  ×               c3 97            MULTIPLICATION SIGN
U+00D8                  Ø               c3 98            LATIN CAPITAL LETTER O WITH STROKE
U+00D9                  Ù               c3 99            LATIN CAPITAL LETTER U WITH GRAVE
U+00DA                  Ú               c3 9a            LATIN CAPITAL LETTER U WITH ACUTE
U+00DB                  Û               c3 9b            LATIN CAPITAL LETTER U WITH CIRCUMFLEX
U+00DC                  Ü               c3 9c            LATIN CAPITAL LETTER U WITH DIAERESIS
U+00DD                  Ý               c3 9d            LATIN CAPITAL LETTER Y WITH ACUTE
U+00DE                  Þ               c3 9e            LATIN CAPITAL LETTER THORN
U+00DF                  ß               c3 9f            LATIN SMALL LETTER SHARP S
U+00E0                  à               c3 a0            LATIN SMALL LETTER A WITH GRAVE
U+00E1                  á               c3 a1            LATIN SMALL LETTER A WITH ACUTE
U+00E2                  â               c3 a2            LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00E3                  ã               c3 a3            LATIN SMALL LETTER A WITH TILDE
U+00E4                  ä               c3 a4            LATIN SMALL LETTER A WITH DIAERESIS
U+00E5                  å               c3 a5            LATIN SMALL LETTER A WITH RING ABOVE
U+00E6                  æ               c3 a6            LATIN SMALL LETTER AE
U+00E7                  ç               c3 a7            LATIN SMALL LETTER C WITH CEDILLA
U+00E8                  è               c3 a8            LATIN SMALL LETTER E WITH GRAVE
U+00E9                  é               c3 a9            LATIN SMALL LETTER E WITH ACUTE
U+00EA                  ê               c3 aa            LATIN SMALL LETTER E WITH CIRCUMFLEX
U+00EB                  ë               c3 ab            LATIN SMALL LETTER E WITH DIAERESIS
U+00EC                  ì               c3 ac            LATIN SMALL LETTER I WITH GRAVE
U+00ED                  í               c3 ad            LATIN SMALL LETTER I WITH ACUTE
U+00EE                  î               c3 ae            LATIN SMALL LETTER I WITH CIRCUMFLEX
U+00EF                  ï               c3 af            LATIN SMALL LETTER I WITH DIAERESIS
U+00F0                  ð               c3 b0            LATIN SMALL LETTER ETH
U+00F1                  ñ               c3 b1            LATIN SMALL LETTER N WITH TILDE
U+00F2                  ò               c3 b2            LATIN SMALL LETTER O WITH GRAVE
U+00F3                  ó               c3 b3            LATIN SMALL LETTER O WITH ACUTE
U+00F4                  ô               c3 b4            LATIN SMALL LETTER O WITH CIRCUMFLEX
U+00F5                  õ               c3 b5            LATIN SMALL LETTER O WITH TILDE
U+00F6                  ö               c3 b6            LATIN SMALL LETTER O WITH DIAERESIS
U+00F7                  ÷               c3 b7            DIVISION SIGN
U+00F8                  ø               c3 b8            LATIN SMALL LETTER O WITH STROKE
U+00F9                  ù               c3 b9            LATIN SMALL LETTER U WITH GRAVE
U+00FA                  ú               c3 ba            LATIN SMALL LETTER U WITH ACUTE
U+00FB                  û               c3 bb            LATIN SMALL LETTER U WITH CIRCUMFLEX
U+00FC                  ü               c3 bc            LATIN SMALL LETTER U WITH DIAERESIS
U+00FD                  ý               c3 bd            LATIN SMALL LETTER Y WITH ACUTE
U+00FE                  þ               c3 be            LATIN SMALL LETTER THORN
U+00FF                  ÿ               c3 bf            LATIN SMALL LETTER Y WITH DIAERESIS

10進数/16進数

  Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

各テーブルの最初の32文字は予約された制御文字です。制御文字は印刷可能文字ではありません。 PCにコマンドを送信するために使用されます。

これで面白いですが便利なものが必要な場合は、作業中のエスケープシーケンス挿入スクリプトを参照してください。fzfandripgrepfd-findrustの書き込み)を使用しますfindが、あなたの用語に基づいています。 Inは、用語機能をウィンドウに印刷し、カーソルの下のコマンドに対して用語情報のマニュアルページを繰り返し検索することを可能にします(名前 - >エスケープシーケンス順にあります)。

選択してクリックすると、Enter引用符の間と後ろのコマンドラインに印刷されますが、実行されませんecho -e " "(愚かなことをする前に表示できるように)。

#!/bin/bash !
fzfcmp () {
    local term
    local FZF_DEFAULT_COMMAND
    FZF_DEFAULT_COMMAND="infocmp $TERM -1"
    term="$(
    infocmp "${_termchoice:-"$TERM"}" -1 | tr '=' '\n' | \
       tr '\t' '' | \
      sed 's/,$//' | fzf \
      --preview='man terminfo | rg -C10 -e {q}' \
        --preview-window='right:80:wrap' --phony \
        --bind="f9:reload:changeterm"
    unset _termchoice
    )"


 if test -n "$(rg -e 'echo' <<<"$READLINE_LINE")"; then
    READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT} $(awk -F= '{print $1}' <<<"${term:-''}" \
    | sed 's/,$//') ${READLINE_LINE:$READLINE_POINT}";
    else
    READLINE_LINE="$(echo 'echo -e' \"${READLINE_LINE:0:$READLINE_POINT} $(awk -F= '{print $1}' <<<"${term:-''}" \
        | sed 's/,$//') ${READLINE_LINE:$READLINE_POINT}\")"
 fi
  READLINE_POINT=$(( ${#term} + READLINE_POINT ))
unset term
}

termfilter () {
    Fzvar="$@"
    local Fzvar
    query="$Fzvar:-"command rg {}"j
fd -uu  . -t f --full-path /usr/share/terminfo -x rg --files-with-matches "\${_query:-"${1:-"/E}"}"

}

fztin () {
if [[ -z "$1" ]]; then
Fvar="."; else
Fvar="$1"
fi
local query
_query "$@"
termfilter  \
  | awk -F/ '{print  $NF}' \
  | sort -u \
  | fzf --bind="alt-p:execute:echo $(infocmp {}) >> $HOME/tmp/{}.tmp" \
  --preview-window "right:85:wrap" \
  --preview="cnat; infocmp {} -l ";
}

changeterm () {
local _termchoice
eval "${_termchoice=+:$(fztin "$@")}" | fzfcmp
}

bind -x '"\et": fzfcmp'
#bind -x '"\em": changeterm  '

Alt+機能はMまだ作業中ですが、利用可能なすべての端末を印刷してから端末を選択すると、別のコマンドに切り替えて、探しているコマンドラインエスケープシーケンスがある端末を確認できます。

関連情報