Readlineとは何ですか?文字を戻る(Rubout)

Readlineとは何ですか?文字を戻る(Rubout)

man bash説明する:

文字を戻る(Routout)

カーソルの後の文字を削除します。数値引数が与えられたら、削除されたテキストを終了リングに保存します。

Ruboutはキーボードの削除キーだけですか?これはbashで説明されているbackward-delete-charと同じ機能を持つためです。

しかし、私が試したとき:

Cx ルアウト

ラインの先頭まで後ろに戦ってみてください。

次の状況を考えてみましょう。

$ testa testb testc testd

ポイントが「st」にあるとし、testcControl + xを押してからキーボードのDeleteキーを押します。結果:

$ testa testb [3~testc testd

わかりません。私が何かを見逃しているのでしょうか?

答え1

簡単な説明では、3つの概念を明確にする必要があります。

文字を戻る(Routout)

  • キーの例で使用した
    キーと呼ばれるキーがあります。このキーは「次の文字」を削除します。行に文字が含まれていてカーソル(点滅インジケータ)が文字の上にある場合、文字は削除されます。代わりに、まったく同じ条件で文字を削除するキーという名前があります。これは手紙ですDelete

    test1sDeletes
    Backspacee先にあるカーソル。

    Backspaceこのキーは、bash マニュアルの「backward-delete-char(Rubout)」で説明されています。

    その鍵は明らかに「カーソルの後ろの文字を削除」です。

  • 数値引数「数値引数」を指定するには、-を
    押す必要があります。たとえば、次のコマンド(またはキー)の引数が作成されます。Alt22

    同様に、行にtestという単語が書かれていてカーソルがある場合は、-を押してからをs押します。そうだろうAlt2Backspace後ろにte単語から2文字を削除しますtest

  • キリングリング。何かが取り除かれると、ほとんどの場合、キリングリングに配置されます。
    「キリング」内のコンテンツを取得するにはctrl- を使用しますy

    alt-を使用して3複数の文字を削除すると、-を使用してそのBackspace文字が再表示されます。ctrly

    詳細:

    コマンドに引数を使用すると、Backspaceカーソルの現在位置「前」に引数に表示されている文字数だけ削除されます。

    コマンドプロンプトに次の文字列がある場合:

    $ testa testb testc
    

    カーソルが文字「b」の下にある場合、a Alt- 3-Backspace文字「est」は削除されます。

    $ testa tb testc
    

    この文字は再印刷されますctrl-y

今:

Cx ルアウト

歩道方法: ctrl-x Backspace

これにより、終了リングの「カーソルの前に」行全体が配置されます。

また、次のキーは次のとおりです。ctrl-x Deleteそのキーに対して定義されたジョブがなく、対応するANSIコードを印刷します。

[3~

あなたの端末で。これは、bashで使用されるreadlineライブラリの〜/ .inputrcで変更できます。しかし、私はこれがこの答えの範囲外であると思います。

関連情報