zsh: conclusão do menu para glob

3

Em zsh , se eu digitar vim *.txt , então Tab , ele será expandido para vim f1.txt f2.txt f3.txt .

Como posso mostrar um menu de conclusão listando os arquivos correspondentes ao padrão, para que eu possa selecionar um único arquivo?

    
por aggu 20.04.2016 / 20:51

1 resposta

4
% PS1='%% ' exec zsh -f
% autoload -U compinit && compinit
% setopt GLOB_COMPLETE
% touch aa ab ac ad
% vim a*

Percorrerá as opções; e depois para um menu (em, tipo, tudo)

% zstyle ':completion*:default' menu 'select=0'
% vim a*

Para obter mais informações, consulte zshoptions(1) e o livro " Do Bash a Z Shell " para obter documentos ligeiramente legíveis sobre o sistema de preenchimento.

O preenchimento do menu por demanda exigiria um widget personalizado:

function blaah {
  local revert
  revert=0
  if [[ $options[(k)globcomplete] = off ]]; then
    setopt globcomplete
    revert=1
  fi
  zle menu-expand-or-complete
  if [[ $revert -eq 1 ]]; then
    unsetopt globcomplete
  fi
}
zle -N blaah

# or perhaps additionally 'vicmd' or instead 'emacs', depending
binkey -M viins "^W" blaah
    
por 20.04.2016 / 21:12