zsh (zshrc)

Configuração para o shell ZSH

Categoria: Console

Software: zsh

[ Hits: 13.877 ]

Por: Phillipe Smith


Aqui vai minha configuração do maravilhoso shell ZSH. Façam seus testes... garanto que será de grande utilidade!

Ah, e não esqueçam de alterar algumas partes da configuração onde tem indicando minha HOME.


#########################
 -*- coding: utf-8 -*-            
 Alterado por: Phillipe Smith                       
#########################

export MANPATH="/usr/man:/usr/X11R6/man"
export LESSCHARSET="latin1"
export INPUTRC="/etc/inputrc"
export LESS="-R"

# Salvar 50*10^3 eventos no histórico.
 HISTFILE=${HOME}/.zsh_history
 HISTSIZE=10000
 SAVEHIST=10000
 setopt EXTENDED_HISTORY HIST_VERIFY HIST_REDUCE_BLANKS HIST_IGNORE_ALL_DUPS
 eval `dircolors -b`
 unset mailpath MAILCHECK

# Configuracoes do Locale (encontre seu locale com 'locale -a' [sem as aspas])
 export LANG="pt_BR.utf8"
 export LC_COLLATE="C"
 umask 022

# Deixa o zsh mais parecido com o vi, também faz com que as teclas del e ctrl+r funcionem normalmente.
 bindkey -v
 bindkey '\e[3~' delete-char
 bindkey '^R' history-incremental-search-backward

# Arquivo do autocompletar.
 zstyle :compinstall filename '/home/phillipe/.zshrc'

# 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 promptinit
 compinit
 promptinit

 # 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 _match _approximate
 zstyle ':completion:*' preserve-prefix '//[^ /]##/'
 zstyle ':completion:*:match:*' original only 

 # 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 '_*'

 # Autocompletar PID (kill).
 zstyle ':completion:*:*:kill:*' menu yes select
 zstyle ':completion:*:kill:*' force-list always

 # Ajustar variável PS1.
 # [/dir] user@host %      HH:MM 
 # PS1 and PS2
 export PS1="[%B%n%b@%m %3~]\$ "
 export RPS1="%T"
 export PS2="$(print '%{\e[0;34m%}>%{\e[0m%}')"

 # Ajusta principais aplicativos.
 export BROWSER="firefox"
 export EDITOR="vim"

 # export XTERM="xterm"
 export VIEWER="gthumb"

 # Algumas opções.
 setopt correct
 setopt correctall
 export SPROMPT="$(print '%{\e[37m%}zsh: Corrigir para %S%r%s ? (n|y|e): %{\e[0m%}')"

# setopt hist_ignore_all_dups
 setopt hist_reduce_blanks
# setopt hist_no_functions
# setopt no_hist_beep
# setopt auto_cd
# setopt no_bg_nice
# setopt no_notify
 setopt no_beep
 setopt extended_glob
# setopt no_clobber
#

# Antialiasing para aplicações GTK/QT:
 export GDK_USE_XFT=1
 export QT_XFT=1


# Correção de BUG do OpenOffice
 export OOO_FORCE_DESKTOP=gnome

# Carregando alguns módulos úteis:
 zmodload -i zsh/complete
 zmodload -i zsh/mapfile
 zmodload -i zsh/mathfunc
 zmodload -i zsh/complist

# Aliases
 alias ls='ls -F --group-directories-first --color=always'
 alias gcc='gcc -Wall'
 alias rm='rm -iv'
 alias cp='cp -v'
 alias mv='mv -v'
 alias mkdir='mkdir -pv'
 alias pacman="sudo pacman-color"
 alias ypacman='yaourt'
 alias mem_clear='sudo mem_clear'
 alias proz='proz -r'
 alias vboxstart='sudo modprobe vboxdrv && sudo modprobe vboxnetflt'
 alias vboxstop='sudo modprobe -r vboxdrv && sudo modprobe -r vboxnetflt'
 alias vi="vim"
 alias net_restart='sudo /etc/rc.d/network restart'
 alias db.lck_rm='sudo rm -rf /var/lib/pacman/db.lck'
 alias svim="sudo vim"

# Esses alias permitem abrir um arquivo diretamente (ex, % file.txt e o vim já é aberto).
 alias -s html=$BROWSER
 alias -s org=$BROWSER
 alias -s php=$BROWSER
 alias -s com=$BROWSER
 alias -s net=$BROWSER
 alias -s br=$BROWSER
 alias -s jpg=$VIEWER
 alias -s png=$VIEWER
 alias -s gif=$VIEWER
 alias -s doc=soffice
 alias -s odt=soffice
 alias -s pdf=evince
 alias -s gz=tar -zxvf
 alias -s bz2=tar -jxvf

# Carrega módulo de matemática
 load_math() {
    zmodload zsh/mathfunc
    }

# Man pages coloridas:
 if [ -e $(`which most > /dev/null`) ]; then
    export PAGER='most -s'
    export LESSHISTFILE='-'
 else
    export PAGER=less
 fi

# key bindings
 bindkey "\e[1~" beginning-of-line
 bindkey "\e[4~" end-of-line
 bindkey "\e[5~" beginning-of-history
 bindkey "\e[6~" end-of-history
 bindkey "\e[3~" delete-char
 bindkey "\e[2~" quoted-insert
 bindkey "\e[5C" forward-word
 bindkey "\eOc" emacs-forward-word
 bindkey "\e[5D" backward-word
 bindkey "\eOd" emacs-backward-word
 bindkey "\e\e[C" forward-word
 bindkey "\e\e[D" backward-word
 bindkey "^H" backward-delete-word
 
 # Para rxvt
 bindkey "\e[8~" end-of-line
 bindkey "\e[7~" beginning-of-line

 # for non RH/Debian xterm, can't hurt for RH/DEbian xterm
 bindkey "\eOH" beginning-of-line
 bindkey "\eOF" end-of-line

 # for freebsd console
 bindkey "\e[H" beginning-of-line
 bindkey "\e[F" end-of-line

 # completion in the middle of a line
 bindkey '^i' expand-or-complete-prefix

 # funcoeszz
 # source /home/phillipe/.zzrc
 #export ZZPATH='/usr/bin/funcoeszz'

############################
## Functions
#############################
#
#myip - finds your current IP if your connected to the internet
myip ()
{
lynx -dump -hiddenlinks=ignore -nolist http://checkip.dyndns.org:8245/ | awk '{
print $4}' | sed '/^$/d; s/^[ ]*//g; s/[ ]*$//g'
 }

#clock - A bash clock that can run in your terminal window.
 clock ()
 {
# 
 while true;do
 clear;
 echo "===========";
 date +"%r";
 echo "===========";
 sleep 1;
 done
 }
#
#netinfo - shows network information for your system
 netinfo ()
 {
# 
echo "--------------- Network Information ---------------"
 /sbin/ifconfig | awk /'inet addr/ {print $2}'
 /sbin/ifconfig | awk /'Bcast/ {print $3}'
 /sbin/ifconfig | awk /'inet addr/ {print $4}'
 /sbin/ifconfig | awk /'HWaddr/ {print $4,$5}'
 myip=`lynx -dump -hiddenlinks=ignore -nolist http://checkip.dyndns.org:8245/ | sed '/^$/d; s/^[ ]*//g; s/[ ]*$//g' `
 echo
 echo "${myip}"
 echo "---------------------------------------------------"
 }

#shot - takes a screenshot of your current window
 shot ()
 {
 
 import -w root -quality 75 "$HOME/shot-$(date +%s).png"
 }

 #Translate a Word - USAGE: translate house
 translate ()
 { 
 TRANSLATED=`lynx -dump "http://dictionary.reference.com/browse/$1" | grep -i -m 1 -w "Portuguese (Brazil):" | sed 's/^[ \t]*//;s/[ \t]*$//'`
 if [[ ${TRANSLATED} != 0 ]]; then
 echo "\"${1}\" in ${TRANSLATED}"
 else
 echo "Sorry, I can not translate \"${1}\" to Portuguese (Brazil)"
 fi
 }
  


Comentários
[1] Comentário enviado por SMarcell em 20/03/2009 - 14:07h

Opa, mais um usuário declarado do zsh! Legal.

[2] Comentário enviado por albfneto em 27/03/2009 - 17:18h

vou testar, stou começando a usar zsh....

[3] Comentário enviado por stilldre em 10/04/2009 - 15:23h

ja usei a zsh quando trampava com os *BSD, tenho ate um artigo aqui mesmo no VOL(http://www.vivaolinux.com.br/artigo/Instalacao-e-configuracao-da-zsh-no-Gentoo-GNU-Linux/), muito bom o .conf mesmo, valeu!

[4] Comentário enviado por Smithux em 10/04/2009 - 18:58h

Opa! Valeu pessoal!
ZSH é muito, muito fera! =)

Eu simplesmente já não sei usar o BASH....

[5] Comentário enviado por SMarcell em 19/04/2009 - 08:10h

O zsh é tão f... =P que dá até pra jogar Tetris nele!

http://www.slackbr.org/forum/viewtopic.php?f=201&t=15721

[6] Comentário enviado por rafatmb em 24/11/2010 - 14:54h

Parabens pelo artigo. O ZSH é realmente campeão.
Seria legal detalharmos alguns trechos de configuração.

Bom material. Abraço.

Rafael Marangoni
LPIC 1/2/3
http://www.brlink.com.br

[7] Comentário enviado por Henriquenunnes em 22/12/2012 - 14:42h

Ola galera,

Gostei muito do zsh é realmente demais. Uma pergunta não estou conseguindo usar o tradutor...Abaixo o erro...

[henrique@newarch ~]$ translate house
"house" in

O que seria?

Abraços!


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts