zsh (.zshrc)
Zsh personalizado
Categoria: Console
Software: zsh
[ Hits: 20.179 ]
Por: Sandro Marcell
Quem precisa do Bash, quando se tem o poderoso zsh?
Aqui estão algumas configurações bem úteis no meu dia-a-dia.
O legal do zsh é que ele é extremamente poderoso e personalizável, indo desde as configurações básicas até as mais avançadas. Vale a pena conhecer este fantástico shell.
# .zshrc - Arquivo de inicialização do Z shell # Sandro Marcell (sandro_marcell@yahoo.com.br) # Boa Vista, Roraima - 10/06/2007 # Criado sob a versão 6.4.2 do zsh # Mais detalhes: man zsh ou info zsh # Setando idioma pt_BR: export LC_ALL=pt_BR export LC_MESSAGES=pt_BR export LC_TYPE=C # Caminhos para binários e manpages: path=( /{bin,sbin} /usr/{bin,sbin} /usr/X11R[0-9]/bin /usr/local/bin ) manpath=( /usr/man /usr/share/man /usr/X11R[0-9]/man /usr/local/man ) # Histórico: export HISTFILE=${HOME}/.zsh_history export HISTSIZE=5000 export SAVEHIST=5000 # Opções para o histórico: setopt EXTENDED_HISTORY HIST_VERIFY HIST_REDUCE_BLANKS HIST_IGNORE_ALL_DUPS # Obs.: Caso queira procurar um comando específico no histórico, # você pode utilizar como alternativa a combinação de teclas # 'CTRL+R' e digitar o comando procurado. # Limpando a tela do terminal usando a tecla <ESC>: bindkey '^[' clear-screen # Sem checagem de mensagens: unset mailpath MAILCHECK # Limitando número de processos: limit maxproc 250 limit coredumpsize 0 # Editor padrão no zsh: export FCEDIT='vim' export VISUAL=$FCEDIT export EDITOR=$FCEDIT # Man pages coloridas: if [ -e $(which most) ] then export PAGER='most -s' export LESSHISTFILE='-' else export PAGER=less fi # Carregando alguns módulos úteis: zmodload -i zsh/complete zmodload -i zsh/mapfile zmodload -i zsh/mathfunc zmodload -i zsh/complist # Ativando auto-correção: setopt CORRECT setopt CORRECT_ALL export SPROMPT="$(print '%{\e[37m%}zsh: Corrigir para %S%r%s ? (n|y|e): %{\e[0m%}')" # Permite o uso dos curingas: *?_-.[]~=/&;!#$%^(){}<> setopt EXTENDED_GLOB # Ativando auto cd (não há necessidade de uso do comando cd): setopt AUTO_CD setopt CDABLE_VARS setopt AUTO_PUSHD setopt PUSHD_IGNORE_DUPS setopt PUSHD_SILENT # Variáveis de ambiente para placa de vídeo nVidia GeForce FX5200: #export __GL_FSAA_MODE=7 #export __GL_FORCE_GENERIC_CPU=0 #export __GL_LOG_MAX_ANISO=3 #export __GL_SYNC_TO_VBLANK=1 # Antialiasing para aplicações GTK/QT: export GDK_USE_XFT=1 export QT_XFT=1 # ls colorido: export ZLS_COLORS=$LS_COLORS alias ls='ls -FX --format=across --color=auto' # Ajustando teclas (sob o xterm): bindkey '^[[H' beginning-of-line # <HOME> bindkey '^[[F' end-of-line # <END> bindkey '^[[3~' delete-char # <DELETE> bindkey '^[[2~' overwhite-mode # <INSERT> bindkey '^[[5~' up-line-or-search # <PAGE UP> bindkey '^[[6~' down-line-or-search # <PAGE DOWN> # Prompt personalizado: [[ $UID != 0 ]] && { export PROMPT=\ "$(print '%B%{\e[33m%}%n%E > %{\e[31m%}%S[%~]%s%{\e[33m%} : %b')" export RPROMPT="$(print '%B%{\e[36m%}%S%l%s%{\e[0m%}%b')" export PROMPT2="$(print '%{\e[5;37m%}-> %{\e[0m%}')" export PROMPT3="$(print '%{\e[5;37m%}-> %{\e[0m%}')" export PROMPT4="$(print '%{\e[5;37m%}-> %{\e[0m%}')" } || { export PROMPT=\ "$(print '%B%S%{\e[31m%}%#%n > (%~)%s%{\e[33m%} : %b')" export PROMPT2="$(print '%{\e[5;37m%}-> %{\e[0m%}')" export PROMPT3="$(print '%{\e[5;37m%}-> %{\e[0m%}')" export PROMPT4="$(print '%{\e[5;37m%}-> %{\e[0m%}')" } # Auto-completando com <TAB> setopt AUTO_LIST setopt AUTO_MENU setopt CASE_GLOB setopt LIST_TYPES setopt GLOB_COMPLETE setopt MENU_COMPLETE setopt COMPLETE_IN_WORD setopt COMPLETE_ALIASES autoload -U compinit compinit # Ativando modo 'verbose': zstyle ':completion:*' verbose 'yes' zstyle ':completion:*' show-completer # Lista colorida de complementações: zstyle ':completion:*:default' list-colors ${(s.:.)ZLS_COLORS} # Menu de seleção visual: zstyle ':completion:*' menu select=3 _complete _ignored _approximate zstyle ':completion:*' select-prompt '%S zsh: Seleção atual = %p %s' # Auto descrição das complementações possíveis: zstyle ':completion:*:options' description 'yes' zstyle ':completion:*:options' auto-description '%d' # Formato das mensagens de auto-complementação: zstyle ':completion:*:corrections' format '%Bzsh: %d (erros: %e)%b' zstyle ':completion:*:descriptions' format '%U%B%d%b%u' zstyle ':completion:*:warnings' format '%Bzsh: Inválido como: %d%b' # Listando auto-complementações em grupos: zstyle ':completion:*:matches' groups 'yes' zstyle ':completion:*' list-grouped zstyle ':completion:*' group-name '' zstyle ':completion:*:*:-command-:*' group-order commands builtins # Expandir o máximo que puder: zstyle ':completion:incremental:*' completer _complete _correct zstyle ':completion:*' completer _complete _correct _match _approximate zstyle ':completion:*:expand:*' tag-order all-expansions # Número de erros a aceitar durante auto-complementação: zstyle ':completion:*:approximate:*' max-errors 2 numeric # Usar '/d/s <TAB>' para expandir para '/dir/subdir': zstyle ':completion:*' expand 'yes' zstyle ':completion:*' squeeze-slashes 'yes' # Preservar prefixo/sufixo durante auto-complementação: zstyle ':completion:*' expand prefix suffix zstyle ':completion:*' completer _complete _prefix zstyle ':completion:*' preserve-prefix '//[^ /]##/' # Opção auto-cd deve ignorar o diretório corrente: zstyle ':completion:*:cd:*' ignore-parents parent pwd # Evitar entradas duplicadas para os comandos abaixo: zstyle ':completion:*:rm:*' ignore-line 'yes' zstyle ':completion:*:cp:*' ignore-line 'yes' zstyle ':completion:*:mv:*' ignore-line 'yes' # Auto-complementação case-sensitive: zstyle ':completion:*:complete:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' # Auto-complementar a partir de curingas: zstyle ':completion:*:complete-extended:*' matcher 'r:|[.,_-]=* r:|=*' # Ignorar auto-complementação de funções internas do zsh: zstyle ':completion:*:functions' ignored-patterns '_*' # Aliases: alias {q,Q}='bye' alias {mv,MV}='nocorrect mv -i' alias {cp,CP}='nocorrect cp -i' alias {rm,RM}='nocorrect rm -i' alias {mkdir,MKDIR}='nocorrect mkdir' alias {du,DU}='du -kh --exclude=".*"' alias {df,DF}='df -Th' alias {free,FREE}='free -m' alias {top,TOP}='top -u $USERNAME' alias {vi,VI}='vim' alias {vim,VIM}='vim' alias {feh,FEH}='feh -x -T britney' alias {sakura,SAKURA}='sakura 2>/dev/null' alias {which,WHICH}='whence -s' alias {distro,DISTRO}=\ 'cat /etc/[A-Za-z]*[_-][rv]e[lr]* ; print "Kernel $(uname -r)"' alias {cpu,CPU}='sed -u "s/\t// ; s/model name:// ; s/^[ \t]*//" \ <(sed -nu "/model name/p" <(cat /proc/cpuinfo))' alias {xterm,XTERM}='xterm -T "Slackware_Linux" -ls -b 10 -bg black \ -fg green -cr white -fa Times -fs 11' alias {aterm,ATERM}='aterm -title Slackware_Linux -ls -tr +sb -fg green \ -cr white -tint white -sh 30' alias {lspci,LSPCI}='lspci | sed -u "s/^[0-9]*:[0-9]*.[0-9] *//g ; \ s/:/\n/g" | sed -u "s/^[ \t]/-> /"' # Auto-completando entrada para comandos # Uso: comando <TAB> compctl -g '*.(doc|DOC|rtf|RTF)' + -g '*(-/)' abiword compctl -g '*.(pdf|PDF|ps|PS)' + -g '*(-/)' xpdf gv compctl -g '*.(htm|HTM|html|HTML)' + -g '*(-/)' firefox compctl -g '*.(conf|CONF|txt|TXT|log|LOG)' + -g '*(-/)' cat jed joe compctl -g '*.(jpg|JPG|png|PNG|gif|GIF)' + -g '*(-/)' feh display compctl -g '*.(mp3|MP3|ogg|OGG|wav|WAV)' + -g '*(-/)' mpg321 ogg123 play # Abrindo arquivos pela extensão: alias -s ogg='ogg123 -d oss' alias -s mp3='mpg321 -o oss' alias -s png=display alias -s jpg=display alias -s doc=abiword alias -s rtf=abiword alias -s pdf=xpdf alias -s txt=cat alias -s log=cat # Encontrar determinado arquivo no diretório corrente: achar() { print "\e[1mEncontrado em: $(ls **/$1)\e[m" } # Corretor ortográfico via terminal (aspell pt): corrigir() { which aspell && aspell -a <(print $1) || bye } # Descompactando arquivo rapidamente: # Uso: descom <arquivo> descom() { if [ -a $1 ] then case $1 { *.[tT][aA][rR].[gG][zZ]) tar -xvzf $1 ;; *.[gG][zZ]) gunzip $1 ;; *.[tT][aA][rR].[bB][zZ]2) tar -jxvf $1 ;; *.[bB][zZ]2) bunzip2 $1 ;; *.[tT][aA][rR]) tar -xvf $1 ;; *.[tT][gG][zZ]) gunzip $1 ;; *.[zZ][iI][pP]) unzip $1 ;; *) print "[$1] Arquivo não suportado." ;; } else print "Especifique um arquivo." fi } # Jogando Tetris via terminal (use F1 para jogar): if [ -e $(which emacs) ] then autoload -U tetris zle -N tetris bindkey '^[OP' tetris fi # Fim
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
xubuntu sem sons de eventos (3)
Erro ao iniciar serviço samba4 como novo dc em um ambiente com ad (9)
Dificuldade para renderizar vídeo no kdenlive (5)