Estou usando rbenv
no Mac OS X. Já tenho a funcionalidade de preenchimento automático para o comando gem
:
$ gem
build environment lock query stale
cert fetch mirror rdoc uninstall
check generate_index outdated search unpack
cleanup help owner server update
contents install pristine sources which
dependency list push specification yank
Mas geralmente uso gem which
para obter a localização de uma gema instalada para procurar a origem. Algo como:
gem which sp[tab]
spork-1.0.0rc4 spork-rails-4.0.0 sprockets-2.10.1 sprockets-rails-2.0.1
Os diretórios de mapeamento não devem ser tão difíceis, mas acho que ter a funcionalidade de preenchimento automático existente pode complicar as coisas. Eu tentei escrever funções de conclusão de bash personalizadas antes, mas eu sempre fico realmente frustrado com isso. Este também terá que verificar a versão atual do ruby com algo como rbenv version
antes de escolher o diretório para verificar.
- É possível "aplicar" essa funcionalidade de "subcomando" com a conclusão do bash?
Eu recentemente aprendi sobre o Thor que parece facilitar bastante a construção de programas de linha de comando, mapeando argumentos para classes e métodos (apenas um problema tangencial exemplo não é uma solução para isso), mas
- Existem bons recursos ou estruturas para criar funções de conclusão de bash personalizadas?
... ou, se não houver tal framework, como posso configurar a função de conclusão do bash como um script para que eu possa executá-lo e gerar os resultados? (Talvez usando algo como inotifywait
para executar o script quando ele é alterado, passando a entrada como "sp" e usando o console para depurar a saída até que funcione corretamente?) Esperando que haja uma maneira mais fácil de fazê-lo porque tentar escrever a conclusão do bash é provavelmente uma das coisas mais agravantes em que trabalhei.