Blog Linux Avante

Cod: Novo daemon de preenchimento automático de linha de comando para Bash e Zsh que detecta o uso de --help

9 de fevereiro de 2020

Daemon de conclusão da linha de comando Cod

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.

Como funciona o Cod

Demonstração mostrando como Cod adiciona autocompletar ao comando scrcpy

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:

Comandos para usar no terminal

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

Comandos para usar no terminal

scrcpy --a

em um terminal e pressione Tab. O argumento deve ser preenchido automaticamente para --always-on-top.

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.

Baixar Cod

Baixar Cod

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):

Comandos para usar no terminal

sudo install cod /usr/local/bin

Você também precisará adicionar uma linha ao arquivo ~/.bashrc ou ~/.zshrc ao código de origem:

  • para Bash: abra ~/.bashrc com um editor de texto e, no final do arquivo, adicione uma nova linha contendo:

Comandos para usar no terminal

source <(cod init $$ bash)

  • para Zsh: abra ~/.zshrc com um editor de texto e, no final do arquivo, adicione uma nova linha com:

Comandos para usar no terminal

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.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda