Use dois pontos como separador de nome de arquivo na conclusão da guia zsh

2

Eu tenho muitos programas que usam argumentos de nome de arquivo como um (ou mais) de

path/to/file
scp:path/to/file.ext
ark:/abs/path/to/file.ext

É possível fazer nomes de arquivos completos após algumas palavras-chave seguidas por dois pontos?

No bash, você pode fazer isso adicionando : à variável COMP_WORDBREAKS.

Graças a Gilles, consigo trabalhar assim.

$ cat ~/.zshrc
...
function aftercolon() {
  if compset -P 1 '*:'; then
    _files "$expl[@]"
  else
    _files "$expl[@]"
  fi
}

autoload -Uz compinit
compinit
compdef aftercolon hello olleh

Agora, nos comandos hello e olleh , conclusão após: funciona como esperado.

Acho que pode haver melhor forma desde:

  1. Eu tenho uma cláusula odd if /, já que os comandos também pegam o nome do arquivo sem prefixo.

  2. E como tenho muitos comandos para esse tipo de argumento, preciso adicionar nomes de todos os comandos. Eu quero aplicar isso a todos os comandos, se possível.

    Também não há problema em aplicar isso a todos os comandos, se for mais fácil

por auditory 25.05.2018 / 02:34

0 respostas