Bastos home about

Usando ZSH no OSX

A coisa mais legal, bem, uma das, em sistemas UNIX é o shell. O shell é lindo e se você acha legal estar no mundo sem ele, foi mal, você não sabe o que é bom!

Sempre utilizei Bash desde a minha primeira instalação de Linux (Mandriva 7), mas eu a pouco tempo esbarrei no ZSH. ZSH é um shell definitivamente mais legal que o Bash, pelo menos pra mim. Na verdade sempre que precisei fazer coisas complexas com script eu recorria a Python ou Ruby, nunca escrevi muitos scripts em Bash na minha vida.

Bash não tinha array, hash, floats… ZSH tem, e melhor que isso, para o uso diário ele tem um auto-completion muito legal que deixa usuários de Emacs como eu (Ainda sou?) bastante felizes.

Instalando o ZSH no OSX

Bem, eu não utilizo mais Linux na minha máquina, mas acredito que um pacman -S zsh funcione perfeitamente!

Obs: Você pode utilizar o ZSH que já vem instalado no OSX mas por questão de gosto e otimização preriro usar o macports.

Utilizando o mac ports é bem fácil:

sudo port install zsh-devel +mp_completion +pcre +dec +examples

Depois baixe o ZSH Templates que é um belo pacote com várias customizações para o ZSH, não é obrigatório mas tem coisas bem legais, mais informaçoes aqui:

cd /Library
sudo svn co http://zsh-templates-osx.googlecode.com/svn/trunk/Library/init
cd /private
sudo svn co http://zsh-templates-osx.googlecode.com/svn/trunk/etc

Adicione esse linha:

/opt/local/bin/zsh

no arquivo:

/etc/shells

Após isso troque seu shell:

chsh -s /opt/local/bin/zsh

Pronto agora você tem o ZSH instalado usando ports, abra um novo Terminal.app e veja!

Configurando seu ZSH

Como no bash você pode simplesmente editar seu .zshrc e colocar tudo nele, ou dividir em arquivos. Uma solução legal é usar o oh-my-zsh que organiza suas configurações. Se trata apenas de alguns scripts para customizar seu ZSH.

Para instalar:

wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

Pronto, instalado, agora vamos lá configurar. O oh-my-zsh carrega automaticamente os arquivos que estão no diretório ~/.oh-my-zsh/custom então você pode simplesmente descarregar lá suas configurações, alguns dos meus arquivos:

aliases.zsh
opts.zsh
rip.zsh
paths.zsh

Um problema que pode acontecer com você é o prompt do ZSH colocar vários /n depois de todos os comandos dados, para resolver:

--- a/lib/aliases.zsh
+++ b/lib/aliases.zsh
@@ -24,7 +24,7 @@ alias gca='git commit -v -a'
 alias gb='git branch'
 alias gba='git branch -a'

-alias history='fc -l 1'
+# alias history='fc -l 1'

 alias ls='ls -F'
 alias ll='ls -alr'

E vai ficar tudo bem (e não me pergunte o motivo…)

Concluindo

Dê uma chance ao ZSH e veja que você vai poder fazer coisas legais como essa:

files=($(pwd)/lala*);

for file in $files; do
	rename_file_name="$(echo $file | sed 's/lala/lele/')"
	git mv $file $rename_file_name
done

E sim, $files é um array!

Um outro exemplo tirado do oh-my-zsh:

for config_file ($ZSH/lib/*.zsh) source $config_file

Olhe o git completion com ZSH:

Git Completion

Zsh on OSX Onde aprendi a instalar e peguei os comandos para a instalação

ZSH Official Page Página oficial do ZSH

ZSH Lovers Página com vários comandos e truques para ZSH

blog comments powered by Disqus
Fork me on GitHub