web-dev-qa-db-ja.com

キーの組み合わせを押した後にterminal / ttyに表示されるこの「(arg:1)」とは何ですか?

仮想端末で(誤って)押された Win+1 で構成される新しい行を取得しました

(arg: 1)

保つ限り Win 押されると、私が押すすべての数字が括弧内の数字に追加されます。 Win そして 1+4 (arg:14)を生成します。

私が(リリース後 Win)いずれかのキーを押すと、その文字が数字の読み取り回数だけ印刷され、(arg: ...)式が標準プロンプトに置き換えられます。

誰がここで何が起こるか知っていますか?

20
guntbert

これは、 数字の引数 であり、bashに組み込まれたreadlineライブラリの機能です。

digit-argument (M-0, M-1, ..., M--)
    Add  this digit to the argument already accumulating, or start a
    new argument. M-- starts a negative argument.

この機能により、現在編集中のコマンドラインでテキストを簡単に追加または削除できます。 echo ggggを書きたいとしましょう:

  1. echoに続けてスペースを入力します
  2. メタキーを押す Win、 Alt および/または Esc あなたのために)そして4gと入力します

しかし、どれだけ頻繁に1文字を入力する必要があるので、これで何も節約できませんか?この機能は主にreadlineコマンド向けに設計されています。リファレンスマニュアルの 章8.2.1–8.2.3を参照してください (「C」の意味 Ctrl、「M」はメタを意味します)。

Metaを使用して1つのWordに戻ることができ、 B、しかし、複数の単語を一度に戻したい場合はどうでしょうか?どちらでも構いません Alt を押す B 複数回、またはdigit引数を使用します。

  1. コマンドラインに5単語前のタイプミスがあります。

    $ echo one two tree four five six seven█
    
  2. Metaキーを押し、5と入力して、Metaキーを押し、 B。その他:

    $ echo one two █ree four five six seven
    
  3. タイプミスを修正し、どちらかを押す Enter 撮影するか End または Ctrl+E もう一度行の最後に移動します。

Metaを押して単一のWordを削除し、 Backspace、しかし複数の単語を一度に削除したい場合はどうでしょうか?

  1. コマンドラインでWordを忘れました:

    $ echo one two four five six seven█
    
  2. Metaキーを押し、4と入力して、Metaキーを押し、 Backspace

    $ echo one two █
    
  3. 不足している単語を入力してからスペースを押して Ctrl+Y 削除されたものを貼り付けます。その他:

    $ echo one two three four five six seven█
    

そのとおりです。説明したとおり、何も削除せずにそこに移動することもできます。私たちはLinuxを使用しています。常に同じことを行う方法がいくつかあります。

そして、「否定的な議論」とは何ですか?同じことを行いますが、反対方向にあるため、Meta -2 Meta Backspace コマンドラインの次の2つの単語を削除します。 「しかし、Meta 1 Metaを使用できます D コマンドラインへようこそ。

参考文献:

23
dessert