키 바인딩없이 readline 함수를 실행 하시겠습니까?


26

나는 readline 맨 페이지를 읽고 있었고 내가 몰랐던 많은 훌륭한 명령들을 발견했다. 그러나 일부에는 기본 키 바인딩이 없습니다. 쉘에서 언 바운드 명령을 실행하는 방법이 있습니까?

~ / .inputrc에서 명령을 바인딩하는 방법을 묻지 않고 대신 쉘이나 bash 스크립트에서 "일회용"으로 명령을 실행하는 방법을 묻습니다.

예를 들어 "dump-variables"명령입니다. "덤프 변수"를 인수로 전달하여 실행할 수있는 명령이 있습니까?


2
나는 readline 매뉴얼과 소스를 한 눈에 볼 수 있다고 생각하지 않습니다.
Jim Paris

답변:


10

나는 당신이 찾고있는 것이 bind명령 자체 라고 생각 합니다. man builtin정보 실행 에 따르면 bind <readline-command>일회성 작업을 수행 할 수 있지만 매뉴얼에서 말한 것처럼 작동하지 못했습니다 ... 키가 계속 작동하지 않습니다. 귀하의 마일리지가 다를 수 있습니다. 사용할 수있는 다음 명령을 찾았습니다.

bind -p # Equivalent to dump-functions [machine readable]
bind -P # Equivalent to dump-functions [human readable]

bind -s # Equivalent to dump-macros    [machine readable]
bind -S # Equivalent to dump-macros    [human readable]

bind -v # Equivalent to dump-variables [machine readable]
bind -V # Equivalent to dump-variables [human readable]

편집 참고 입력하고 bind자동 완성을 위해 tab 키를 누르면 모든 명령이 표시 되기 때문에 매뉴얼이 말한 것처럼 작동하지 않는다는 것이 얼마나 귀찮은 지 지적하고 싶습니다 .


3
readline 함수를 직접 호출하기 : 매뉴얼은 실제로 그렇게 할 수 있다고 주장하지 않습니다. 구문 양식을 참조하는 경우 bind readline-command: 직접 호출 가능한 readline 함수가 아니라 정의 (매핑) 행을 command의미하는 것 같습니다 . 자동 완성 기능은 일부 플랫폼 (예 : Fedora 20)에서 명시 적으로 사전 설정되어 있지만 다른 플랫폼에서는 그렇지 않습니다 . 그것의 존재는 readline 함수를 직접 호출 할 수 있다는 것을 의미하지는 않습니다. 이것은 상당히 "멍청한"명령 완성 사양입니다. 완료는에 제공된 모든 인수에서 작동 합니다 . bind
mklement0

1
유효한 함수 / 매크로 / 변수를 나열하는 명령에 +1; 쉘 명령 (을 통해 정의 )을 추가 -X할 가치가 있습니다. -x
mklement0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.