Para iniciar uma única sessão
zsh, execute "zsh", para uma solução permanente, verifique o capítulo "Configurações de salvamento" (gravação de configurações). Após a instalação, zsh parece simples e até mesmo limitada em funcionalidade. Para mudar isso diversas mudanças na configuração precisam ser realizadas.
Compleção-com-TAB avançada:
Para ativar o famoso sistema de compleção-com-TAB da zsh, precisaremos executar os seguintes comandos:
Listagem de código 2.1: Ativando compleção
% autoload -U compinit
% compinit
O sistema de compleção padrão é feio e simplista. Se você quiser melhorar sua aparência, execute os seguintes comandos:
Listagem de código 2.2: Melhorias no sistema de compleção
% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
Correção de comandos:
Também é uma boa idéia ativar a auto-correção dos comandos digitados:
Listagem de código 2.3: Ativando auto-correção
% setopt correctall
Título:
O título no entanto pode parecer chato, mas podemos ajustá-lo facilmente em alguns passos. Primeiro temos que iniciar o suporte avançado a títulos:
Listagem de código 2.4: Ativando títulos avançados
% autoload -U promptinit
% promptinit
Nota: Se você está utilizando diversos prompts e não quer utilizar um título para cada um deles, pode usar o comando "prompt -l" para listar os títulos disponíveis.
Outra opção é criar seu próprio título. Para fazer isso você precisará ativar a variável de ambiente PS1.
Listagem de código 2.6: Um título customizado simples
% export PS1="[Test Prompt] > "
[Test Prompt] >
Enquanto for proveitoso ser capaz de criar um título customizado, zsh também provê muitas seqüências de escape que permitem que informação do sistema seja mostrada no título. Abaixo algumas das seqüências de escape:
Seqüência | Exibição |
%T | Horário do sistema (HH:MM) |
%* | Horário do sistema (HH:MM:SS) |
%D | Data do sistema (YY-MM-DD) |
%n | Nome de usuário |
%B - %b | Inicia - termina texto em negrito |
%U - %u | Inicia - termina sublinhado |
%d | Diretório atual |
%~ | Diretório atual, relativo ao ~ |
%M | Nome da máquina |
%m | Nome da máquina (truncado antes do primeiro período) |
%l | Terminal atual (tty) |
Estas seqüências de escape podem simplesmente serem inseridas na variável de ambiente, PS1 e zsh as interpretará automaticamente.
Listagem de código 2.7: um título mais complexo
% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %
Histórico:
Infelizmente a configuração padrão da zsh no Gentoo não inclui suporte ao comando de histórico. Trabalhar com uma shell sem histórico é muito frustrante, portanto devemos executar os seguintes comandos:
Listagem de código 2.8: Configuração básica de histórico
% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"
O histórico não será salvo sem o seguinte comando:
% export SAVEHIST=$HISTSIZE
Para evitar que o histórico grave entradas duplicadas (como um "ls -l" utilizado diversas vezes em uma única sessão de shell), você pode ativar a opção hist_ignore_all_dups:
Listagem de código 2.9: Evitando duplicatas
% setopt hist_ignore_all_dups
Uma dica para prevenir que entradas especificas seja gravadas no histórico é precedê-las por pelo menos um espaço.
Listagem de código 2.10: Prevenindo entradas específicas de serem gravadas em histórico
% setopt hist_ignore_space
Este comando não será gravado. Note o espaço extra antes dele:
% cat /proc/cpuinfo
Opções diversas:
Você pode ativar a opção "autocd" se quiser evitar a digitação tediosa do comando cd para mudar de diretório (por exemplo /etc ao invés de cd /etc).
Listagem de código 2.11: Ativando a opção autocd
% setopt autocd
Se a opção "tipo-bash" para uso de caracteres "coringa" não satisfaz você, a opção "extendedglob" deve ser utilizada para ativar opções estendidas de "coringas" (algo similar a expressões regulares).
Listagem de código 2.12: Ativando opção estendida de coringas
% setopt extendedglob
Quando a opção acima estiver ativa, você poderá utilizar consultas estendidas através de coringas como em cp ^*.(tar|bz2|gz).