$ bind -p | grep 'complete$'
"\C-i": complete
"\M-\e": complete
Điều này cho thấy ràng buộc khóa mặc định của Meta+Esc(và Ctrl+i) trong chế độ chỉnh sửa dòng lệnh Emacs là chức năng Đọc complete
. Các Metachính thường là Esctrên bàn phím mà không có một rõ ràng Metaquan trọng. Tài liệu Readline cho chức năng này cho biết
Cố gắng thực hiện hoàn thành trên văn bản trước điểm. Việc hoàn thành thực tế được thực hiện là dành riêng cho ứng dụng. Chẳng hạn, Bash cố gắng hoàn thành việc coi văn bản là một biến (nếu văn bản bắt đầu bằng $
), tên người dùng (nếu văn bản bắt đầu bằng
~
), tên máy chủ (nếu văn bản bắt đầu bằng @
) hoặc lệnh (bao gồm cả bí danh và chức năng) lần lượt. Nếu không có cái nào tạo ra sự trùng khớp, thì việc hoàn thành tên tệp sẽ được thử. Mặt khác, Btb cho phép hoàn thành các chức năng và biến chương trình và chỉ thử hoàn thành tên tệp trong một số trường hợp nhất định.
Về nhận xét của bạn đối với câu trả lời của Anthon : Không, nhấn Eschai lần không giống như nhấn Tabchung (trừ khi đó là trong một chương trình ánh xạ cả hai đến cùng một hành động, như Readline làm theo mặc định). Tuy nhiên Ctrl+i là giống như Tab, giống như Ctrl+[là giống như Esc. Điều này có nghĩa là bạn có thể hoàn thành Ctrl+[ Ctrl+[trong bash
nếu muốn, miễn là gấp đôi Escràng buộc với complete
chức năng Đọc . Điều này rất hữu ích nếu bạn đang làm việc tại một thiết bị đầu cuối VT220, ví dụ, thiếu phím Escape:
Esc
hai lần (hoặc\M-\e
) không giống nhưTab
trong bash, nếu cả hai đều hoàn thành?