ZSH에서 Fish와 유사한 매개변수 완성 검색

ZSH에서 Fish와 유사한 매개변수 완성 검색

물고기를 가지고 놀다가 이런 편리한 동작을 발견했습니다.

를 입력하면 wget -<tab><tab><tab>대화형 메뉴로 이동됩니다. 그런데 이렇게 입력하면서 매개변수 자체에 대한 설명을 검색하게 됩니다. 나는 이것을 zsh에서 시도했고 이 메뉴를 입력하면 대화형 프롬프트로 다시 돌아가는 것 같습니다. zsh에서 비슷한 기능을 얻을 수 있는 방법이 있나요?

답변1

이것을 파일에 넣어보세요 .zshrc:

 # load module for list-style selection
 zmodload zsh/complist

 # use the module above for autocomplete selection
 zstyle ':completion:*' menu yes select

 # now we can define keybindings for complist module
 # you want to trigger search on autocomplete items
 # so we'll bind some key to trigger history-incremental-search-forward function
 bindkey -M menuselect '?' history-incremental-search-forward

wget -<tab>이제 자동 완성 메뉴를 입력하면 나타납니다. 이 메뉴에 대한 키 바인딩을 정의했으므로 검색 줄을 누르면 ?완성 항목 위에 표시됩니다.

davidsykora~%wget --referer
isearch: refe

몇 가지 추가 팁:

  • bindkey -M menuselect '/' history-incremental-search-backward역방향 검색을 정의할 수도 있습니다.
  • ?검색 중에 다시 누르면 선택 항목이 다음 검색 결과로 이동합니다 . /이전 결과로 이동하는 데 사용됩니다 .
  • 원하는 방식으로 작동하려면 많은 조정이 필요하므로 살펴보십시오.complist 문서추가 기능 및 옵션 찾기
  • 저에게는 vi-insert일반적으로 complist 기능을 사용하는 것이 훨씬 빠릅니다. 입력한 내용에 따라 완성 항목을 필터링합니다.

답변2

나는 이것이 귀하의 요구 사항을 충족한다고 생각합니다.

  zmodload zsh/complist
  setopt menucomplete
  zstyle ':completion:*' menu select=0 search

이렇게 하면 탭을 클릭할 때 목록이 나타나고, 계속 입력하면 증분 검색을 통해 설명을 포함하여 사용 가능한 옵션을 검색하게 됩니다.

동일한 구성에 관심이 있을 수도 있지만 검색 대신 대화형을 사용하는 것이 좋습니다. 이 경우 입력할 때 지금까지 입력한 내용과 일치하는 항목만 완성하도록 필터링합니다.

관련 정보