zsh의 결과 목록이 Tab매우 유용하다는 것을 알았지 만 그들의 동작을 약간 조정하고 싶습니다.
내가 Tab처음으로 나타날 때 나타나고 나중에 새 문자가 추가 될 때마다 동적으로 업데이트됩니다. 기본 동작은 다시 제안 할 때만 제안을 다시 평가하는 것 Tab입니다.이 반복 된 키 누르기를 저장하고 싶습니다. ( 업데이트 : 가능한 완료 사항 만 나열하십시오. 옵션이 하나만 있어도 실제 프롬프트 행을 자동으로 수정해서는 안됩니다.)
그러한 행동을 달성 할 수있는 방법이 있습니까?
답변
원하는 솔루션을 제공 할 수있는 한 가지 방법은 incremental-complete-word
다음과 같습니다.
zle -N incremental-complete-word
bindkey '^Xi' incremental-complete-word
이 함수를로드하고 Ctrl-에 바인딩합니다 X i. 이제 시도해 볼 수 있습니다.
> k^Xi
incremental (complete): -no prefix-
이 예에서는 문자 k
를 입력 한 다음 Control-X i를 입력했습니다.
> kil
incremental (complete): kill
나는 타이핑을 il
했고 지금은 가능한 하나의 완성 ( kill
)이 있었다. 그것을 받아들이고 Enter를 누를 수 있습니다.
> kill^D
incremental (complete): -no prefix-
- external command -
kill killall killall5
입력 Ctrl– Dzsh을 보여줍니다 가능한 완료.
보낸 사람 zshcontrib(1)
:
incremental-complete-word 단어의
증분 완성을 허용합니다. 이 명령을 시작한 후 완료 선택 목록은 당신이 삭제할 수 있습니다 사용자가 입력하는 모든 문자, 후 표시 할 수 있습니다 ^H또는 DEL. return 키를 누르면 지금까지 완료를 받아들이고 일반 편집으로 돌아갑니다 (즉, 명령 행이 즉시 실행되지 않습니다). TAB정상적으로 완료하고 ^G 시작했을 때 상태로 다시 중단 ^D하고 일치하는 항목을 나열 하기 위해 적중 할 수 있습니다 .