[unix] 배쉬 : 탈출을 4 번 누르기

bash 터미널에서 escape를 4 번 누르면 다음과 같이 표시됩니다.

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

이 기능은 무엇이며 이러한 항목은 어떻게 찾습니까? (두 번째 Esc 키를 누르면 터미널에서 경고음이 울립니다.)



답변

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

이것은 Emacs 명령 줄 편집 모드에서 Meta+Esc(과 Ctrl+i) 의 기본 키 바인딩 이 Readline 기능 임을 보여줍니다 complete. Meta키는 일반적으로 Esc명시하지 않고 키보드의 Meta키를 누르십시오. 이 함수에 대한 Readline 문서는

포인트 이전의 텍스트에 대해 완료를 시도하십시오. 실제 완료는 응용 프로그램에 따라 다릅니다. 예를 들어, Bash는 텍스트를 변수 (텍스트로 시작하는 경우 $), username (텍스트가로 시작하는 경우 ~), 호스트 이름 (텍스트가로 시작하는 경우 @) 또는 명령 (별칭 및 함수 포함) 으로 처리를 완료하려고 시도 합니다
. 이들 중 어느 것도 일치하지 않으면 파일 이름 완성이 시도됩니다. 반면 Gdb는 프로그램 기능 및 변수의 완성을 허용하며 특정 상황에서 파일 이름 완성 만 시도합니다.


Anthon의 답변에 대한 귀하의 의견 : 아니요, Esc두 번 누르는 것은 Tab일반적으로 읽는 것과 동일하지 않습니다 (Readline이 기본적으로 Readline처럼 두 동작을 모두 동일한 동작에 매핑하는 프로그램에 있지 않는 한). 그러나 Ctrl+i 입니다 같은 Tab처럼 Ctrl+[동일하다 Esc. 이는 double 이 Readline 함수에 바인딩되어있는 한 원하는 경우 Ctrl+[ Ctrl+[in으로 완료 할 수 있음을 의미합니다 . 예를 들어, Esc 키가없는 VT220 터미널에서 작업하는 경우 유용합니다.bashEsccomplete

독일어 VT220 키보드


답변

이를 파일 완성이라고하며, 명령 행에 선행 명령이없는 경우 bash는 내장 된 명령과 명령에있는 모든 2837 명령을 완료하도록 제안합니다. PATH

정렬 된 순서로 표시됩니다


답변