タブキーをアクティブにして、構造化されたコマンドを複数行で記述します


10

構造化されたコマンドを複数行で記述したい

$ for i in *;
 do
    file $i;
 done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text

しかし、タブが機能していないことを確認し、

bashコンソールでタブキーをアクティブにするにはどうすればよいですか?


4
代わりにControl-V Tabを押してください。タブはデフォルトでファイル/コマンド補完にバインドされています。
モスビー2018年

回答:


10

Enter不完全なコマンドを入力した後にを押すと、bashシェルは継続プロンプト(セカンダリプロンプト$PS2)を表示し、入力したコマンドを完了することができます。その時点でのシェルのコマンドライン編集機能は、元のプロンプト(プライマリプロンプト、$PS1Tabと同じです。つまり、キーはコマンドとファイル名の補完を通常どおり実行します。

タブ文字を挿入するには、を使用するCtrl+V Tabか、インデントにスペースを使用します。接頭辞がの場合、タブ文字(またはその他のリテラル文字)は常に挿入できCtrl+Vます。


または、Emacsコマンドライン編集モード(私はのデフォルトであると考えていますbash)の場合、を使用Ctrl+X Ctrl+Eしてエディターを起動し、コマンドを入力します。使用されるエディターは、EDITORshell / environment変数で指定されたエディター、またはemacsこの変数が設定されていない場合です。

Viコマンドライン編集モードで、を押しEscape vて同じことを行います。

コマンドは、エディターを保存して終了した後に実行されます。


Whatはviコマンドラインですが、Vimはコマンドを直接入力して実行するのではなく、事前に開いて中に入って編集するエディターであることを知っています。
微積分

1
@avirate Vimは、元のViエディターのバリアントです。「Viコマンドライン編集モード」は、有効にしset -o viて、コマンドラインでVi / Vim編集コマンドを使用できるようにするモードです。たとえば、(Esc)でdw現在の単語の末尾まで削除set -o emacsできます。使用して戻るEmacsコマンドライン編集モードに。
Kusalananda

すごい、私はすぐにそれを検索して探索します。
微積分

1
@avirateエディタを事前に開く必要がないことに注意してください。を押すCtrl+X Ctrl+Eと、シェルがそれを開きます。
Kusalananda
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.