Tulis perintah terstruktur dalam banyak baris dengan tombol tab diaktifkan

10

Saya ingin menulis perintah terstruktur dalam beberapa baris sebagai

$ 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

tetapi menemukan tab tidak berfungsi,

Bagaimana saya bisa mengaktifkan tombol tab di konsol bash?

Kalkulus
sumber
4
tekan Control-V Tab sebagai gantinya; Tab terikat ke penyelesaian file / perintah secara default.
Mosvy

Jawaban:

10

Ketika Anda menekan Entersetelah memasukkan perintah yang tidak lengkap, bashshell akan menampilkan prompt lanjutan (prompt sekunder, $PS2) dan memungkinkan Anda untuk menyelesaikan perintah yang dimasukkan. Fasilitas pengeditan baris perintah shell pada saat itu sama dengan di prompt asli (prompt utama, $PS1), yang berarti bahwa Tabkunci akan melakukan perintah dan nama file selesai seperti biasa.

Untuk menyisipkan karakter tab, gunakan Ctrl+V Tab, atau gunakan spasi untuk indentasi. Karakter tab (atau karakter literal lainnya) selalu dapat dimasukkan jika diawali oleh Ctrl+V.


Atau, jika dalam mode pengeditan baris perintah Emacs (yang saya yakini sebagai default bash), gunakan Ctrl+X Ctrl+Euntuk membuka editor untuk memasukkan perintah Anda. Editor yang digunakan akan menjadi yang ditentukan oleh EDITORvariabel shell / environment, atau emacsjika variabel ini tidak disetel.

Dalam mode pengeditan baris perintah Vi, tekan Escape vuntuk melakukan hal yang sama.

Perintah akan dieksekusi setelah menyimpan dan keluar dari editor.

Kusalananda
sumber
Bisakah saya bertanya Apa baris perintah vi, saya tahu Vim adalah editor yang harus dibuka terlebih dahulu, masuk ke dalam, dan mengedit, daripada langsung ketik perintah dan jalankan.
Kalkulus
1
@avirate Vim adalah varian dari editor Vi asli. "Mode pengeditan baris perintah Vi" adalah mode yang Anda aktifkan set -o vidan yang memberi Anda kemampuan untuk menggunakan perintah pengeditan Vi / Vim pada baris perintah, seperti ( Esc) dwuntuk menghapus hingga akhir kata saat ini, dll. Gunakan set -o emacsuntuk kembali ke mode pengeditan baris perintah Emacs.
Kusalananda
Luar biasa, saya langsung mencari dan menjelajahinya.
Kalkulus
1
@avirate Perhatikan bahwa editor tidak perlu dibuka terlebih dahulu. Jika Anda menekan Ctrl+X Ctrl+E, shell akan membukanya untuk Anda.
Kusalananda