Pesquisa de conclusão de argumento semelhante a peixe no ZSH

6

Eu estava brincando com peixes e notei esse comportamento útil

Se eu digitei wget -<tab><tab><tab> , fui colocado em um menu interativo. No entanto, quando eu digitei, procurei as descrições dos próprios argumentos. Eu tentei isso em zsh, e digitando neste menu só pareceu me trazer de volta ao meu prompt interativo. Existe uma maneira de obter uma funcionalidade semelhante no zsh?

    
por ollien 28.05.2017 / 04:21

2 respostas

0

Acho que isso faz o que você quer:

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

Isso fará com que a lista apareça quando você clicar na guia e, se continuar digitando, pesquisará as opções disponíveis, incluindo as descrições, com uma pesquisa incremental.

Você também pode estar interessado na mesma configuração, mas com interatividade em vez de pesquisa. Nesse caso, conforme você digita, ele filtrará as conclusões para apenas as que corresponderem ao que você digitou até o momento.

    
por 24.01.2018 / 10:16
0

Tente colocar isso no arquivo .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

Agora, se você digitar o menu wget -<tab> com preenchimentos automáticos, será exibido. Nós definimos keybind para este menu, então se você pressionar ? , a linha de pesquisa aparecerá no topo das conclusões:

davidsykora~%wget --referer
isearch: refe

Algumas dicas adicionais:

  • você também pode definir bindkey -M menuselect '/' history-incremental-search-backward para pesquisa regressiva
  • se você pressionar ? durante uma pesquisa novamente, a seleção saltará para o próximo resultado da pesquisa. Use / para pular para o resultado anterior
  • são necessários vários ajustes para que funcione como você deseja, então dê uma olhada em complist documentation para encontrar funções e opções adicionais
  • geralmente é muito mais rápido usar a função vi-insert complist - ela filtra as conclusões com base no que você digita.
por 09.09.2018 / 14:56