Eu estava brincando com peixes e percebi esse comportamento útil
Se eu digitasse wget -<tab><tab><tab>
, era colocado em um menu interativo. Porém, quando digitei, procurei as descrições dos próprios argumentos. Eu tentei isso no zsh, e digitar neste menu apenas pareceu me trazer de volta ao meu prompt interativo. Existe uma maneira de obter funcionalidade semelhante no zsh?
Responder1
Tente colocar isso no seu .zshrc
arquivo:
# 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, wget -<tab>
o menu com preenchimentos automáticos aparecerá. Definimos o atalho de teclado para este menu, portanto, 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 retroativa - se você pressionar
?
novamente durante uma pesquisa, a seleção saltará para o próximo resultado da pesquisa. Use/
para pular para o resultado anterior - são necessários muitos ajustes para que funcione como você deseja, então dê uma olhada
complist
documentaçãopara encontrar funções e opções adicionais - para mim geralmente é muito mais rápido usar
vi-insert
a função complist - ela filtra as conclusões com base no que você digita.
Responder2
Eu 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 em tab e, se continuar digitando, ela pesquisará as opções disponíveis, incluindo descrições, com uma pesquisa incremental.
Você também pode estar interessado na mesma configuração, mas com interação em vez de pesquisa. Nesse caso, enquanto você digita, as conclusões serão filtradas apenas para aquelas que correspondem ao que você digitou até agora.