UbuntuのGNU nanoエディタでキャレット+文字オプションを処理する方法

UbuntuのGNU nanoエディタでキャレット+文字オプションを処理する方法

とても簡単な質問です。添付の写真を見ると、ほとんどのオプションは^入力と異なる文字を同時に要求するようです。問題は、入力するにはを^押す必要があることです。たとえば。 2番目の文字を押す前にShift + 6実際に入力している時点です。^^T

ここに画像の説明を入力してください。

答え1

^O表現だ特徴Ctrl、通常+ o(キー以外)を押すと端末から送信されます。端末では、アプリケーションはキーボードイベントを処理するのではなく、キーまたはキーの組み合わせを押すと端末が送信するバイトであるデバイスファイル/dev/tty*からバイトストリームを読み取り、入力を受け取ります。/dev/pt*

ASCIIベースのシステムで使用されているASCIIベースの端末(現在の仕様、ほとんどのシステム/端末は米国英語以外の文字をサポートするように拡張されています)を使用してを入力すると、a端末zは97〜122(または0x60 | letter)バイトを送信します。 ASCIIのato文字;zキーを押しながら同じ操作を実行すると、ShiftASCII()にバイト65〜90が送信されます0x40 | letterAZ

使用すると、Ctrlバイト1〜26(1)を送信します0x00 | letter

今バイト0〜31コントロール文字にはグリフやフォント表現はありません。名前があります(参照man ascii)。 9(Ctrl+またはでi転送)はタブで、10は改行(Ctrl+で転送j)、13はキャリッジリターン(Ctrl+mまたはで転送さEnterれますが、ターミナルドライバはしばしば改行記号に変換することに注意してください)。

Ctrl+に送信される文字はo次のとおりです。引っ越す制御文字代わりにnano使用すると、ほとんどの人はその制御文字を送信する方法を知りません。<shift-in> Write Out^O Write Out

^A... ^Z^[ ^\ ^] ^^ ^_27..31の場合、^@0の場合、^?127^の場合)は時々呼び出されます。帽子のシンボルこれらの文字の一般的な視覚表現です。cat -vtターミナルラインルールによってまたはそれ以降にも使用されることがわかりますstty echoctl

他の記号には、\CAまたはが含まれます\C-A。一部の制御文字\nには、^J/newline、/BEL\aなどの C 文字列表現があります。^G

ただし、^A/\C-Aキーボードを使用して生成する方法についてのガイドラインがより役立ちます。


1は@ASCIIでは0x40、0x3f?では0x40なので、文字は、つまり2番目の最上位ビットが反転されたXのバイト値^Xで取得できます。さらに、ASCII専用端末は、+および+を送信するために使用する0x80〜0x9fおよび0x40 ^ X0xa0​​〜0xffバイトのM-^X合計表現を見つけることができます。しかし、最近はESC()の後に/を送ることを好みます。なぜなら、ビット8がnonの代わりに使用されるからです。 -ASCII 文字、バイト 0xd5 の意味ではなく、最近期待すると予想しています。 (別名ラテン語1)M-XMetaCtrlXMetaX^[^XXnano^[UM-U UndoÕ

関連情報