나는 이것을 만났다질문Bash에서 내 glob 패턴을 인라인으로 확장하는 방법을 찾으려고 합니다. 하지만 내 경우에는 스키마에 일부 문자 클래스가 포함되어 있습니다.
3개의 파일이 있다고 가정해 보겠습니다.abc
bbc
1bc
내가 입력할 때:
$> somecommand [[:alpha:]]bc
내 명령을 인라인으로 확장할 수 있는 키 조합이 있는지 궁금합니다.
$> somecommand abc bbc
나는 Ctrl+X
*
성공하지 못한 채 키 시퀀스를 시도했습니다. 단순한 전역 패턴에서만 작동하는 것처럼 보이지만 패턴에 특정 문자 클래스가 포함된 경우에는 확장되지 않습니다.[[:alpha:]]
답변1
이는 단어 완성을 위한 단어 구분 기호로 간주되는 :
문자 목록(셸 변수에 노출됨)이 있기 때문입니다.readline
bash
$COMP_WORDBREAKS
뒤쪽에:
COMP_WORDBREAKS=${COMP_WORDBREAKS/:}
:
(에서 제거됨 $COMP_WORDBREAKS
), Ctrl+가 X*작동해야 합니다.
:
문자 클래스 내에서 사용되기 때문에 애초에 이 목록에 있어서는 안 된다고 주장할 수도 있지만 , 다음과 같은 목적으로 완성 기능을 사용할 수 있기를 원한다는 근거가 있다고 생각합니다.
경로=~/bin:/usr/locTab
Ctrl그리고 두 가지를 모두 수용하기에는 메커니즘이 너무 조잡해서( + X*on을 제거해도 작동하지 않음을 알 수 있음 'a'*
) 절충안입니다. 두 경우 모두에 적합한 고급 편집 기능을 갖춘 쉘을 여기에서 확인하세요.'
$COMP_WORDBREAKS
zsh