zsh: Habilitando suporte avançado à auto-completação

O zsh possui um sistema de auto-completação simplesmente FANTÁSTICO! :headbang: e para ativá-lo, basta adicionar estas linhas em seu .zshrc e pronto! Agora use e abuse da tecla <TAB> e veja a “mágica” acontecer diante de seus olhos… 😎

#
# Suporte a auto-completação avançada no ZSH
# - Mais detalhes: 
# $ info zsh
#

# Módulos/Funções necessárias
zmodload zsh/complete
zmodload zsh/complist
autoload -U compinit
compinit -C

# Definindo opções padrões
setopt AUTO_LIST
setopt AUTO_MENU
setopt CASE_GLOB
setopt LIST_TYPES
setopt GLOB_COMPLETE
setopt MENU_COMPLETE
setopt ALWAYS_TO_END
setopt COMPLETE_IN_WORD
setopt COMPLETE_ALIASES
setopt listtypes

# Melhorar performance ao auto-completar
zstyle ':completion:*' accept-exact '*(N)'
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ${HOME}/.zcompcache

# Mostrar primeiro os arquivos recentes
zstyle ':completion:most-recent-file:*' match-original both
zstyle ':completion:most-recent-file:*' completer _menu _files _match
zstyle ':completion:most-recent-file:*' file-sort modification
zstyle ':completion:most-recent-file:*' file-patterns '*(.):normal files'
zstyle ':completion:most-recent-file:*' hidden all

# Modo 'verbose':
zstyle ':completion:*' verbose 'yes'
zstyle ':completion:*' show-completer

# Ignora entradas duplicadas
zstyle ':completion:*:history-words' stop yes
zstyle ':completion:*:history-words' remove-all-dups yes
zstyle ':completion:*:history-words' list false
zstyle ':completion:*:history-words' menu yes

# Lista colorida de completações: 
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

# Menu de seleção visual:
zstyle ':completion:*' menu select=long
zstyle ':completion:*' menu select=3 _complete _ignored _approximate
zstyle ':completion:*' select-prompt '%S zsh: [%p] navegado %s'

# Auto descriçao das completações possíveis:
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'

# Formato das mensagens de auto-completação:
zstyle ':completion:*:corrections' format '%Bzsh: %d (erros: %e)%b'
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%SEntrada inválida como: %s %d'

# Listando auto-completações em grupos:
zstyle ':completion:*:matches' groups 'yes'
zstyle ':completion:*' list-grouped
zstyle ':completion:*' group-name ''
zstyle ':completion:*:*:-command-:*' group-order commands builtins

# Expandir as auto-completações o máximo possível:
zstyle ':completion:incremental:*' completer _complete _correct
zstyle ':completion:*' completer _complete _correct _match _approximate 
zstyle ':completion:*:expand:*' tag-order all-expansions

# Preservar prefixo/sufixo durante auto-completação:
zstyle ':completion:*' expand prefix suffix
zstyle ':completion:*' completer _complete _prefix
zstyle ':completion:*' preserve-prefix '//[^ /]##/'

# Auto-completação case-sensitive:
zstyle ':completion:*:complete:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'

# Auto-completar a partir de coringas:
zstyle ':completion:*:complete-extended:*' matcher 'r:|[.,_-]=* r:|=*'

# Ignorar auto-completação das funções internas do zsh:
zstyle ':completion:*:functions' ignored-patterns '_*'
zstyle ':completion:*:zcompile:*' ignored-patterns '(*~|*.zwc)'

zsh rules!!! :knight:

Falou!!! 😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s