Como Criar Funções de Autocomplete para o Oh My Zsh
By Junio Horniche2 min read333 words

Como Criar Funções de Autocomplete para o Oh My Zsh

Testingteste

Como Criar Funções de Autocomplete para o Oh My Zsh

O Oh My Zsh é uma das ferramentas mais populares para melhorar a experiência no terminal, oferecendo temas e plugins que tornam o uso do shell mais produtivo e agradável. Um dos recursos mais poderosos é o autocomplete, que pode ser personalizado para comandos específicos.

Neste post, você vai aprender como criar sua própria função de autocomplete para comandos personalizados no Zsh.


🧠 Pré-requisitos

Antes de começar, certifique-se de que:

  • Você tem o Oh My Zsh instalado.
  • Está familiarizado com o uso básico do terminal.
  • Tem um comando ou script que deseja adicionar autocomplete.

🛠️ Estrutura Básica de um Autocomplete

No Zsh, funções de autocomplete são geralmente definidas em arquivos que começam com _ e são colocadas em diretórios de funções ($fpath). Aqui está um exemplo básico:

# Arquivo: _meucomando # Função de autocomplete # $1 é o nome do comando _arguments \ '1:ação:(start stop restart status)' \ '2:opções:(--verbose --force)'

Esse exemplo cria sugestões para um comando chamado meucomando, com ações como start, stop, etc., e opções como --verbose.


📁 Onde Colocar o Arquivo

Você pode colocar o arquivo de autocomplete em um diretório como ~/.oh-my-zsh/custom/plugins/meuplugin/ e adicionar o plugin ao seu .zshrc:

plugins=(meuplugin)

Certifique-se de que o arquivo _meucomando esteja no $fpath. Você pode adicionar o diretório ao $fpath no seu .zshrc:

fpath=(~/.oh-my-zsh/custom/plugins/meuplugin $fpath)

🔄 Atualizando o Cache de Autocomplete

Depois de criar o arquivo, atualize o cache de autocomplete com:

autoload -Uz compinit && compinit

🧪 Exemplo Prático

Vamos criar um autocomplete para um comando fictício chamado deploy:

# Arquivo: _deploy _arguments \ '1:ambiente:(dev staging production)' \ '2:opções:(--dry-run --rollback)'

Agora, ao digitar deploy [TAB], você verá sugestões como dev, staging, production, e ao digitar deploy dev [TAB], verá --dry-run, --rollback.