INSTALANDO ZSH + OH-MY-ZSH + STARSHIP

Melhorando a produtividade

Post atulizado: Installing Zsh + Oh-My-Zsh + Starship

Olá, seja bem-vindo ao meu blog!

O objetivo deste artigo é compartilhar minha configuração de shell com você. Penso que o meu trabalho e as tarefas do dia a dia se tornaram mais fáceis e produtivas comparando com o bash “normal”. Espero que seja útil para você.

Você precisará das seguintes ferramentas:

  • Zsh - O shell Z.
  • Oh-My-Zsh - Um framework para gerenciar sua configuração do Zsh.
  • Starship - Um prompt rápido e personalizável para qualquer shell que funciona muito bem com o Zsh!

Parto do princípio que você já tem o git instalado e sabe utilizá-lo para clonar repositórios.

Primeiro, você precisa instalar o Zsh. Você pode usar o gerenciador de pacotes da sua distribuição para instalá-lo facilmente.

Para o openSUSE:

1
sudo zypper install zsh

Para o Ubuntu:

1
sudo apt install zsh

Para o Fedora:

1
sudo dnf install zsh

Depois disso, você deve definir o Zsh como seu shell padrão:

1
chsh -s $(which zsh)

Agora reinicie sua máquina.

Após a reinicialização, abra o seu terminal e você deverá se deparar com um assistente de configuração do Zsh. Neste momento, você pode digitar q e ENTER porque você vai instalar e configurar o Oh-My-Zsh e ele já traz um modelo do arquivo .zshrc pronto:

  • O programa curl ou o wget devem estar instalados.
  • O git deve estar instalado.
1
sh -c "$ (wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Se o Oh-My-Zsh foi instalado com sucesso, você verá que seu prompt muda para verde. O arquivo de configuração do modelo é ~/.zshrc que oferece inúmeras possibilidades para configurar o comportamento do seu shell, como temas para o prompt e plugins.

Existem muitas configurações que podem ser feitas no Zsh + Oh-My-Zsh, aqui vou falar sobre uma lista de plugins legais que eu uso, mas você pode se aprofundar para descobrir mais possibilidades. Os plugins devem ser colocados na sessão plugins = (...) do arquivo de configuração. Segue uma lista pessoal:

nome do pluginbreve descrição
colored-man-pagesadiciona cores às páginas de manual
command-not-foundusa o pacote command-not-found para o Zsh apresentar pacotes sugeridos
dockeradiciona “tab-completion” para Docker
gitfornece aliases e algumas funções úteis
npmfornece “tab-completion” e muitos aliases úteis
pep8adiciona “tab-completion” para o comando pep8
pipadiciona “tab-completion” para o comando pip
pyenvcarrega pyenv e pyenv-virtualenv
pythonadiciona vários aliases para comandos python úteis
sudoprefixa o comando atual com sudo pressionando esc duas vezes
systemdfornece aliases úteis para systemd
ubuntuadiciona “tab-completion” e aliases para o Ubuntu
zsh-reloadbasta digitar src para recarregar a sessão do Zsh
zsh-autosuggestionssugere comandos enquanto você digita com base no histórico e nos “tab-completions”
zsh-syntax-highlightingfornece destaque de sintaxe

Você pode acessar https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins para ver uma lista completa dos plugins e suas respectivas documentações.

Os dois últimos plugins da minha lista não fazem parte da instalação padrão do Oh-My-Zsh e devem ser instalados separadamente. Talvez seja possível instalá-los com o gerenciador de pacotes da sua distribuição, mas eu prefiro instalar via Github para tirar proveito de possíveis novos recursos.

Como você está usando Oh-My-Zsh como um gerenciador de plug-ins, e os plug-ins já estão ativados em nosso arquivo .zshrc, tudo o que você precisa fazer é clonar o repositório do projeto direto no diretório $ZSH_CUSTOM.

Basta digitar o seguinte comando para zsh-autosuggestions:

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

E o seguinte para zsh-syntax-highlighting:

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Para obter um melhor suporte para ícones e símbolos, você deve instalar uma fonte moderna como a Nerd Fonts. Eu uso Meslo, mas você pode escolher a sua e testar.

Fonte Meslo Nerd

Agora você precisa configurar o emulador de terminal para usar a fonte Meslo Nerd.

Para concluir a tarefa, o último passo é instalar o Starship, que trará muitas melhorias para o nosso shell Zsh. A instalação é muito simples, basta digitar:

  • o pacote curl deve estar instalado.
1
curl -fsSL https://starship.rs/install.sh | zsh

Uma vez instalado, você precisa habilitá-lo. Basta colocar a seguinte linha no final ~/.zshrc.

1
eval "$ (starship init zsh)"

É uma boa ideia comentar a linha ZSH_THEME no ~/.zshrc.

A configuração do Starship é de fácil entendimento. Primeiro, você precisa criar o arquivo de starship.toml. Ele deve ser colocado em ~/.config:

1
mkdir -p ~/.config && touch ~/.config/starship.toml

Depois disso, você deve preencher o arquivo com as opções que deseja alterar a configuração padrão. A propósito, a configuração padrão é bem legal! Como a configuração é um arquivo .toml, todas as opções são do tipo chave : valor.

As informações detalhadas sobre cada opção estão bem descritas na documentação oficial. Vou deixar aqui o que estou usando para servir como referência para você.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
# Inserts a blank line between shell prompts
add_newline = true

# Customizing the prompt
format = """
$username\
$hostname\
$shlvl\
$singularity\
$kubernetes\
$directory\
$vcsh\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$hg_branch\
$docker_context\
$package\
$cmake\
$cobol\
$dart\
$deno\
$dotnet\
$elixir\
$elm\
$erlang\
$golang\
$helm\
$java\
$julia\
$kotlin\
$lua\
$nim\
$nodejs\
$ocaml\
$perl\
$php\
$pulumi\
$purescript\
$python\
$rlang\
$red\
$ruby\
$rust\
$scala\
$swift\
$terraform\
$vlang\
$vagrant\
$zig\
$nix_shell\
$conda\
$memory_usage\
$aws\
$gcloud\
$openstack\
$azure\
$env_var\
$crystal\
$custom\
$sudo\
$cmd_duration\
$line_break\
$jobs\
$battery\
$time\
$status\
$shell\
[$character](bold green)"""

# Configure if and how the time is shown
[time]
disabled = false
time_format = "%T"
format = "🕛[$time ](bold blue)"

[sudo]
disabled = false
style = "bold green"
symbol = "💪"
format = "[<SUDO>$symbol]($style)"

[status]
disabled = false
style = "bg:blue"
symbol = "🔴"
map_symbol = true
format = "[[$symbol $common_meaning$signal_name$maybe_int]]($style) "

[hostname]
ssh_only = false
ssh_symbol = " 🔒🐚"
format = "[$ssh_symbol](bold blue) on [$hostname](bold green) "
#trim_at = ".companyname.com"
disabled = false

[memory_usage]
disabled = false
threshold = -1
symbol = "🧠"
format = "$symbol [${ram}( | ${swap})]($style) "
style = "bold dimmed green"

[username]
style_user = "white bold"
style_root = "black bold"
format = "[$user]($style)"
disabled = false
show_always = true

Agora basta fechar seu terminal e abrir novamente para ver o resultado. Gostou?! :wink:

Espero que seja realmente útil para você e agradeço por ter lido!

Related Content