$ bind -p | grep 'complete$'
"\C-i": complete
"\M-\e": complete
Это показывает, что связывание клавиш по умолчанию Meta+Esc(и Ctrl+i) в режиме редактирования командной строки Emacs - это функция Readline complete. MetaКлюч, как правило , Escна клавиатурах без явного Metaключа. Документация Readline для этой функции говорит
Попытайтесь выполнить завершение над текстом до точки. Фактическое выполненное завершение зависит от приложения. Bash, например, пытается завершить обработку текста по очереди как переменная (если текст начинается с $), имя пользователя (если текст начинается с
~), имя хоста (если текст начинается с @) или команда (включая псевдонимы и функции). Если ни один из них не приводит к совпадению, выполняется попытка завершения имени файла. Gdb, с другой стороны, позволяет завершать программные функции и переменные и только пытается завершить имя файла при определенных обстоятельствах.
Относительно вашего комментария к ответу Anthon : Нет, Escдвойное нажатие - это не то же самое, что Tabобщее нажатие (если только это не в программе, которая отображает их оба на одно и то же действие, как Readline делает по умолчанию). Однако Ctrl+i это так же , как Tab, так же , как Ctrl+[та же Esc. Это означает, что вы можете выполнить завершение с помощью Ctrl+[ Ctrl+[in, bashесли хотите, если double Escсвязан с completeфункцией Readline . Это удобно, например, если вы работаете с терминалом VT220, в котором отсутствует клавиша Escape:

Escдважды (или\M-\e) не такое, какTabв bash, если оба выполняют завершение?