Bash: Esc 키를 4번 누르세요.

Bash: Esc 키를 4번 누르세요.

Bash 터미널에서 Esc 키를 4번 누르면 다음과 같은 내용이 표시됩니다.

-bash-4.1$
Display all 2837 possibilities? (y or n)
:
!
./
[
[[
]]
{
}
411toppm
a2p
ac
accept
accton
aclocal
aclocal-1.11
acpi_listen

이 기능은 무엇입니까? 이 항목을 찾는 방법은 무엇입니까? (esc를 두 번째로 누르면 터미널에서 경고음이 울립니다.)

답변1

$ bind -p | grep 'complete$'
"\C-i": complete
"\M-\e": complete

Meta+EscEmacs 명령줄 편집 모드에서 기본 (및 Ctrl+i) 키 바인딩은 Readline 기능임을 알 수 있습니다 complete. 이 Meta키는 일반적으로 Esc키보드에 있으며 명시적인 키가 없습니다 Meta. 이 함수에 대한 Readline 문서에는 다음과 같이 나와 있습니다.

해당 지점 이전의 텍스트에 대해 완성을 시도합니다. 실제 실행은 애플리케이션에 따라 다릅니다. 예를 들어 Bash는 텍스트를 변수(텍스트가 로 시작하는 경우 $), 사용자 이름(텍스트가 로 시작하는 경우 ~), 호스트 이름(텍스트가 로 시작하는 경우) 또는 명령(별명 및 기능). @이들 중 어느 것도 일치하지 않으면 파일 이름 완성이 시도됩니다. 반면 Gdb는 프로그램 기능과 변수의 완성을 허용하고 특정 상황에서만 파일 이름 완성을 시도합니다.


귀하의 의견에 대해안톤의 대답: 아니요, Esc두 번 누르는 것은 일반적으로 누르는 것과 다릅니다 Tab(Readline이 기본적으로 수행하는 것처럼 동일한 동작으로 매핑하는 프로그램에 있지 않는 한). 하지만Ctrl+i 똑같아 Tab, Ctrl+[똑같아 Esc. 이는 double이 Readline 함수에 바인딩되어 있는 한 필요한 경우 Ctrl+[ Ctrl+[완성을 사용할 수 있음을 의미합니다 . 예를 들어 Esc 키가 없는 VT220 터미널에서 작업하는 경우 다음이 편리합니다.bashEsccomplete

독일어 VT220 키보드

답변2

이것을 파일 완성이라고 하며, 명령줄에 이전 명령이 없어도 bash는 내장된 명령과 파일에 있는 명령을 포함하여 알고 있는 모든 2837 명령을 완료할 수 있게 해줍니다.PATH

정렬된 순서로 표시됨

관련 정보