Viết các lệnh có cấu trúc trong nhiều dòng với phím tab được kích hoạt


10

Tôi muốn viết lệnh có cấu trúc trong nhiều dòng như

$ 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

nhưng tìm tab không hoạt động,

Làm cách nào tôi có thể kích hoạt phím tab trong bảng điều khiển bash?


4
nhấn Tab Control-V thay thế; Tab được ràng buộc để hoàn thành tập tin / lệnh theo mặc định.
mosvy

Câu trả lời:


10

Khi bạn nhấn Entersau khi nhập lệnh chưa hoàn tất, trình bashbao sẽ hiển thị lời nhắc tiếp tục (lời nhắc phụ $PS2) và cho phép bạn hoàn thành lệnh đã nhập. Các phương tiện chỉnh sửa dòng lệnh của shell tại thời điểm đó giống như tại dấu nhắc ban đầu (dấu nhắc chính $PS1), có nghĩa là Tabkhóa sẽ thực hiện hoàn thành lệnh và tên tệp như bình thường.

Để chèn một ký tự tab, sử dụng Ctrl+V Tabhoặc sử dụng khoảng trắng để thụt lề. Các ký tự tab (hoặc bất kỳ ký tự chữ nào khác) luôn có thể được chèn nếu có tiền tố bởi Ctrl+V.


Ngoài ra, nếu ở chế độ chỉnh sửa dòng lệnh Emacs (mà tôi tin là mặc định bash), hãy sử dụng Ctrl+X Ctrl+Eđể hiển thị trình chỉnh sửa để nhập lệnh của bạn vào. Trình soạn thảo được sử dụng sẽ là biến được chỉ định bởi biến EDITORshell / môi trường hoặc emacsnếu biến này không được đặt.

Trong chế độ chỉnh sửa dòng lệnh Vi, nhấn Escape vđể làm điều tương tự.

Lệnh sẽ được thực thi sau khi lưu và thoát khỏi trình soạn thảo.


Tôi có thể hỏi dòng lệnh vi là gì không, tôi biết Vim là trình chỉnh sửa nên được mở trước, vào trong và chỉnh sửa, thay vì nhập trực tiếp vào lệnh và chạy.
Giải tích

1
@avirate Vim là một biến thể của trình soạn thảo Vi gốc. "Chế độ chỉnh sửa dòng lệnh Vi" là chế độ mà bạn bật set -o vivà cung cấp cho bạn khả năng sử dụng các lệnh chỉnh sửa Vi / Vim trên dòng lệnh, như ( Esc) dwđể xóa đến cuối từ hiện tại, v.v. Sử dụng set -o emacsđể quay lại để chế độ chỉnh sửa dòng lệnh Emacs.
Kusalananda

tuyệt vời, tôi ngay lập tức tìm kiếm và khám phá nó.
Giải tích

1
@avirate Lưu ý rằng trình chỉnh sửa không cần phải được mở trước. Nếu bạn nhấn Ctrl+X Ctrl+E, vỏ sẽ mở nó cho bạn.
Kusalananda
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.