Cod é um novo daemon de conclusão de linha de comando escrito em Go para Bash e Zsh. A ferramenta detecta o uso de --help
para gerar preenchimento automático para comandos que não o suportam.
O preenchimento de linha de comando (preenchimento de tab/autocompletar) é um recurso comum entre os intérpretes de linha de comando, no qual o programa preenche automaticamente comandos parcialmente digitados ao pressionar a tecla de conclusão, que geralmente é Tab. Ao usá-lo, menos pressionamentos de tecla são necessários para acessar comandos comuns e torna mais fácil o preenchimento automático de comandos/nomes de arquivos com nomes longos ou difíceis de soletrar.
Os elementos que podem ser completados não são apenas comandos e nomes de arquivos, mas também argumentos de comando, e é isso que Cod faz. Ele analisa a saída de --help
para um comando específico e, com base nisso, gera autocompletar para shells Bash ou Zsh. Alguns comandos já oferecem suporte ao preenchimento automático para argumentos (por exemplo ls
- digite ls --fu
e pressione Tab
para autocompletar para ls --full-time
), mas outros não e Cod pode ajudar nesses casos.
Cod suporta Zsh no macOS e Linux e Bash apenas no Linux. O Bash no macOS não é compatível porque, de acordo com a descrição do projeto do Cod, a versão do Bash que acompanha o macOS é muito antiga e o Cod não a suporta. Não há menção ao Windows na descrição do projeto e não há binários do Windows, portanto, pode não oferecer suporte ao Windows, mas não tenho certeza, pois não uso o Windows.
Demonstração mostrando como Cod adiciona autocompletar ao comando scrcpy
Quando você acessa --help
de um programa/comando, o Cod o detecta e pergunta se ele deve aprender esse comando. Se você permitir, o Cod analisa a saída --help
e a usa para completar os argumentos para esse comando no futuro.
Para casos especiais em que o Cod não detecta que você invocou a ajuda de um comando, use o subcomando Cod learn
para aprendê-lo de qualquer maneira.
Vejamos um exemplo do mundo real: scrcpy (isso pode ser visto no terminal de demonstração gravando algumas linhas acima). Esta é uma ferramenta para mostrar a tela de um dispositivo Android em uma área de trabalho e controlá-la remotamente. O comando scrcpy tem muitas opções/argumentos, como --always-on-top
, --record-format
, --window-borderless
e mais, sem suporte para preenchimento automático integrado.
Para fazer o Cod aprender as opções/argumentos do comando scrcpy, vamos executar:
scrcpy --help
Ao executar um comando com o argumento --help
, Cod pergunta se ele deve aprender esse comando:
┌──> /usr/bin/scrcpy --help
└─── cod: learn this command? [yn?] > y
cod: learned completions: "--always-on-top" "-b" and 35 more
Digite y
para permitir que ele aprenda este comando.
Agora que Cod aprendeu os argumentos do comando, vamos tentar. Digite
scrcpy --a
em um terminal e pressione Tab
. O argumento deve ser preenchido automaticamente para --always-on-top
.
Você também pode gostar de: Expansão de caminho incompleto para Bash com bash-complete-partial-path
Além do já mencionado subcomando learn
, Cod tem algumas outras opções como update
(atualizar um comando conhecido), list
(lista de comandos conhecidos) e mais. Esta é a tela de ajuda/uso do Cod:
usage: cod [] [ ...]
Shell autocomplete generator based on `--help' texts.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
Commands:
help [...]
learn ...
list [...]
remove ...
update ...
init
example-config []
daemon []
Visite a página do projeto Cod para obter mais informações sobre como usá-lo e configurá-lo.
Você pode baixar o código-fonte e compilar o Cod, ou baixar e instalar o binário pré-construído (disponível para macOS e Linux).
Para instalar o binário Cod no Linux, extraia o arquivo cod-Linux.tgz, abra um terminal na pasta em que você extraiu o binário Cod e use este comando para instalá-lo em /usr/local/bin
(certifique-se de que esteja em seu PATH
, ou instale-o em outro lugar):
sudo install cod /usr/local/bin
Você também precisará adicionar uma linha ao arquivo ~/.bashrc
ou ~/.zshrc
ao código de origem:
~/.bashrc
com um editor de texto e, no final do arquivo, adicione uma nova linha contendo:source <(cod init $$ bash)
~/.zshrc
com um editor de texto e, no final do arquivo, adicione uma nova linha com:source <(cod init $$ zsh)
Salve o arquivo, forneça o ~/.bashrc
modificado (use este comando: source ~/.bashrc
) e o arquivo ~/.zshrc
(use source ~/.zshrc
) ou abra um novo terminal e Cod estará pronto para uso.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Cod: New Command Line Autocomplete Daemon For Bash and Zsh That Detects --help Usage