You’re Missing Out on a Better Mac Terminal Experience

Quando deixei o mundo do Linux e fiz a mudança em tempo integral para o OS X há pouco mais de um ano, o que mais sentia falta era da comunidade robusta e da pletora de opções em torno de customizações, ajustes e personalizações do sistema operacional e da estação de trabalho. O que se segue é um guia delineando a busca para construir a minha shell de OS X perfeita – uma experiência de linha de comando tanto funcional quanto bonita, sem sacrificar uma pela outra. Espero que os meus passos poupem algum tempo e frustração a alguns viajantes com as mesmas ideias na sua viagem rumo a uma experiência terminal perfeita.

Mile 1: Escolhendo uma Aplicação Shell

>

/div>

credit: hyper.is

O primeiro passo nesta jornada, e um importante, é escolher uma aplicação de emulação terminal. Dentro do mundo do OS X, existem dois jogadores dominantes: iTerm, e Hyper.

Este artigo não pretende ser uma revisão da aplicação, por isso não vou entrar em detalhes sobre a funcionalidade da escolha ou uso avançado, mas vou dizer o seguinte:

Geralmente, o iTerm vai ser a opção mais performante dos dois. O iTerm possui um conjunto realmente incrível de opções, atalhos e capacidades. Se você estiver fazendo um trabalho pesado na linha de comando do Mac, usando regularmente o tmux, ou precisar de uma configurabilidade mais avançada, este provavelmente será o melhor ajuste. Encontre o iTerm aqui.

Hyper é um jogador mais novo neste campo, e apesar de ter menos funcionalidades que o iTerm, é indiscutivelmente a experiência de terminal mais bonita. Isto não quer dizer que o iTerm seja feio, mas o estilo do Hyper é simplesmente…nice.

Hyper é construído sobre tecnologias web (HTML, CSS, JS), e tem uma coleção robusta de temas, uma biblioteca diversificada de plugins facilmente instalados, e contribuições contínuas do usuário fazem desta uma escolha divertida e interessante. A equipe do Hyper acaba de lançar a versão 2 aumentando a velocidade, adicionando melhorias UX úteis, simplificando ainda mais a instalação de plugins, e muito mais. Confira Hyper aqui.

A escolha aqui será uma boa escolha. Ambas as opções podem ser configuradas para criar uma experiência de terminal linda e altamente funcional. Eu recomendaria tentar both- Eu mantenho ambas instaladas, usando cada uma para propósitos diferentes.

Note: se você não gosta de nenhuma das opções acima, ou prefere ficar com aplicações nativas, o terminal embutido.app que vem com OS X vai funcionar muito bem para a maioria ou para tudo o que vamos cobrir no restante do artigo.

Mile 2: Installing Your Unix Shell

Após determinar qual aplicação de terminal você vai usar, o próximo passo é escolher uma shell unix. Este é um pré-requisito necessário para a maior parte do que se seguirá.

Existem três grandes escolhas neste departamento: Bash (OS X default), Zsh, e Fish. Cada escolha tem vantagens e desvantagens diferentes, mas para efeitos deste artigo, vamos trabalhar com zsh.

Z shell, ou zsh, existe desde 1990, e tem um grande número de plugins, guias, e contribuidores. Algumas vantagens do zsh incluem: completações melhoradas, histórico de comandos, globbing, atalhos, manipulação de variáveis, e muitas outras. Cada um desses itens vale a pena explorar e aprender sobre outra época.

Zsh Installation:

Zsh é uma versão mais antiga do OS X, no entanto, é uma versão mais antiga. I recommend installing the latest version using Homebrew, the Mac package manager.

If you have not heard of Homebrew, or do not have it installed, you can find it here.

  • To install zsh using Homebrew, enter the following into your terminal:

brew install zsh zsh-completions

  • Verify installation by entering the following:

zsh --version

expected result: 5.1.1 or newer.

  • Make zsh your system’s default shell:

chsh -s $(which zsh)

  • Verify that it worked:

echo $SHELL

expected result: /bin/zsh

If you get hung up anywhere during this process, or need additional help, check this for more information and a more detailed install guide.

After installing zsh, the first time zsh is ran, it will prompt you with a series of questions concerning configuration. Siga o prompt até o final, fazendo alterações onde desejar. Não são necessárias alterações, no entanto – as predefinições funcionarão bem.

Mile 3: Escolhendo um Framework

credit: oh-my-zsh

Após a instalação do zsh, abre-se todo um novo mundo de frameworks, plugins e temas. Muito mais do que pode ser coberto dentro deste artigo. Para os propósitos deste artigo, estaremos usando o oh-my-zsh de Robby Russel como nossa estrutura. É simples de instalar, tem um conjunto robusto de funcionalidades, e é geralmente indulgente na usabilidade.

Se o oh-my-zsh não é a sua chávena de chá, um framework similar como o Prezto vai funcionar muito bem no lugar dele. Alternativamente, se você preferir uma alternativa mais leve, você pode ficar apenas com um gerenciador de plugins, como o Antigen, ou correr sem uma estrutura completamente. Estas decisões dependem inteiramente de você, e eu o encorajaria a brincar com diferentes configurações, frameworks, plugins e mudanças para determinar qual se encaixa no seu fluxo de trabalho e precisa melhor.

Instalando oh-my-zsh:

Head para o repositório oh-my-zsh no Github – aqui.

Seguir as instruções básicas de instalação no repositório, ou veja abaixo:

Instalar via curl:

No seu terminal, execute:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

O acima irá clonar e instalar o oh-my-zsh. Quando completo, você está pronto para começar a usá-lo.

Oh-my-zsh configuration:

Zsh plugins podem adicionar todo tipo de soluções úteis de fluxo de trabalho, ajustes divertidos, ou adicionar funcionalidades importantes. Aqui estão alguns para começar:

zsh-nvm – zsh plugin para Node Version Manager (assumindo que você use Node.js). Faça o download aqui.

zsh-syntax-highlighting ou fast-syntax-highlighting – adiciona realce de sintaxe em tempo real aos comandos enquanto digita no terminal – altamente recomendado. Encontre-o aqui.

git – atalhos e soluções para usuários do git. Navios com oh-my-zsh.

Existem muitos, muitos mais plugins por aí. Oh-my-zsh navios com uma longa lista deles, também (veja aqui). Mais uma vez, isto depende da configuração pessoal – gaste tempo a decidir qual funcionará melhor para si.

Plugin installation:

Esta parte do guia leva-nos a uma peça muito importante no processo de configuração do zsh: o ficheiro de configuração zsh, .zshrc .

Seu .zshrc arquivo deveria ter sido gerado na primeira vez que você executou o zsh e/ou durante a instalação do oh-my-zsh. Você pode encontrá-lo entre os arquivos escondidos no seu diretório home.

Note: para habilitar a visualização de arquivos escondidos no seu diretório home, digite isto no seu terminal: defaults write com.apple.finder AppleShowAllFiles YES

The .zshrc file is where most of our prompt configuration is going to take place. Oh-my-zsh terá gerado uma configuração padrão, com campos para theme, plugins, aliases, e mais.

Instalar um novo plugin é um processo simples. Se é um plugin que foi enviado com oh-my-zsh, simplesmente navegue para a parte “plugins” do seu .zshrc ficheiro e escreva o seu nome dentro dos parênteses. Recarregue o seu terminal digitando zsh e deve ser funcional.

Para plugins de terceiros, recomendo seguir as instruções de instalação dentro do repositório de plugins. No entanto, o processo de instalação para a maioria dos plugins de terceiros é bastante simples, e deve ser feito da seguinte forma:

  1. Clone o plugin e mova os ficheiros clonados para a sua pasta /custom dentro da pasta oh-my-zsh installation, que se encontra no seu directório home.
  2. Com o seu ficheiro .zshrc, adicione o nome do plugin dentro dos parênteses no campo ‘plugins’, como fizemos acima.
  3. Reload zsh, e deverá estar pronto a usar.

Note: if you run into any hangups in this process, please refer to the oh-my-zsh repository, or the third party plugin’s repository. Most of your troubleshooting needs should be addressed there. Additionally, there is a large community surrounding the use of these tools- if there is something you can’t immediately find in the repositories, a quick google search will likely turn up a long list of people asking and solving the same questions you have.

Mile 4: Spaceship Prompt Installation

credit: spaceship prompt

Now that we have installed zsh, a framework, and our plugins, we can now get to work configuring our command line via a theme/custom prompt.

Seu prompt de linha de comando pode ser o que você quiser – mínimo, verboso, informativo, bonito, pragmático, ou tudo o que foi dito acima. Para os nossos propósitos, eu escolhi um grande tema de prompt zsh, Nave Espacial. É a melhor combinação de cada um dos atributos acima que encontrei até agora.

O repositório github do Spaceship Prompt pode ser encontrado aqui.

Instalação do prompt da Nave Espacial:

Clonar o repositório:

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Symlink spaceship.zsh-theme para o seu directório de temas personalizados oh-my-zsh:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Set ZSH_THEME="spaceship" no seu .zshrc na secção “tema” do seu iv.

Personalização do prompt da nave:

Agora que você tem seu prompt instalado, há uma longa lista de personalizações e ajustes que podem ser feitos para se adequar ao seu fluxo de trabalho ou estilo. O seu repositório tem um grande conjunto de documentos que lhe mostrarão algumas das possibilidades. Spend some time viewing the examples, or leave it as-is — the defaults are great.

My personal prompt is configured to display some custom icons and information:

Spaceship prompt in iTerm2

The above should give you an idea of some of the cool possibilities that you can create with Spaceship. To get your prompt looking like mine, a few steps must be followed:

The font I’m using iTerm is Monoid Nerd Font . In Hyper I am using nerd fonts’ PowerlineSymbols and mononoki Nerd Font Mono . Use whichever fonts you personally like, however— a nerd font is required to properly use Spaceship prompt. As fontes nerds são especialmente corrigidas para incluir todos os grandes símbolos/glifos discutidos dentro deste artigo.

P>Localize as fontes nerds aqui e aqui.

  1. Para instalar fontes nerds:
  • Instalação manual – baixe/clone os arquivos da fonte. O repositório de fontes nerd terá instruções detalhadas sobre como baixar o pacote inteiro, ou fontes individuais.
  • Navigate para o diretório da(s) fonte(s) recém baixada(s). Encontre os arquivos de fontes reais, normalmente terminando em .ttf – simultaneamente, abra o aplicativo nativo ‘Font Book’ que vem com o OS X.
  • Arraste os arquivos de fontes ( .ttf ) diretamente para a lista de fontes do Font Book. O seu cursor deve mudar para um símbolo verde ‘+’ ao arrastar. Solte o cursor, e suas fontes serão instaladas.

3. Opções adicionais de instalação de fontes estão detalhadas no repositório de fontes nerds Github, e incluem instalação via Homebrew, script de instalação, e download ad hoc curl. Cada uma tem suas vantagens/caveatas – Eu recomendo ler o repositório para decidir qual é a mais fácil/melhor para suas necessidades.

4. Após baixar e instalar suas fontes nerds, abra seu emulador de terminal (iTerm ou Hyper), e pressione Command + , . Isto abrirá as suas preferências de utilizador. No iTerm, isto virá na forma de uma janela de diálogo GUI. No Hyper, isto abrirá o seu arquivo de configuração Hyper, .hyper.js no seu editor de texto padrão.

  • No iTerm, as fontes podem ser configuradas dentro dos ‘Perfis’ -> {nome do perfil}. -> secção ‘Texto’. Dentro de ‘Texto’, navegue para a parte ‘Fonte’. Mude a fonte primária para a sua nova fonte nerd, e marque a caixa ‘Use uma fonte diferente para texto não-ASCII’. Marque esta caixa, assim como a caixa ‘Use ligatures’. Defina a fonte secundária para uma fonte nerd, também. See below:

Your configuration should be similar.

In Hyper, within your .hyper.js configuration file in your text editor, navigate to the fontFamily tag. Replace the defaults with the names of your new nerd font(s).

Note: if you are not a programmer, be careful with your use of quotation marks. Multiple word font names with spaces will need their own surrounding quotes.

Your configuration should look something like the below, specifically, the portion surrounded in the blue box (you may disregard the other fields):

pictured: vs code with monoid nerd font, material darker syntax theme.

Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:

  1. Within the nerd fonts website, roughly two-thirds of the way down, there is a scrollable field that displays glyphs/icons and their corresponding codes. Any of these icons can be used in your prompt using Spaceship and a nerd font. Scroll through and find one or two that you like.

Note: the four-character glyph/icon codes must be preceded by \u , as shown below.

  1. Within your .zshrc file, paste o seguinte após a secção “theme”:
SPACESHIP_PROMPT_ADD_NEWLINE=”true”
SPACESHIP_CHAR_SYMBOL=” \uf0e7"
SPACESHIP_CHAR_PREFIX=”\uf296"
SPACESHIP_CHAR_SUFFIX=(" ")
SPACESHIP_CHAR_COLOR_SUCCESS=”yellow”
SPACESHIP_PROMPT_DEFAULT_PREFIX=”$USER”
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=”true”
SPACESHIP_USER_SHOW=”true”

O acima fará com que o seu prompt pareça idêntico ao meu, assumindo que tem uma fonte nerd instalada. Se você gostaria de mudar os ícones no prompt, os campos SPACESHIP_CHAR_SYMBOL= e SPACESHIP_CHAR_PREFIX= são onde você irá ligar os códigos dos ícones das fontes nerds que eu notei acima. Você pode adicionar logotipos de linguagens de programação, frameworks e bibliotecas. Você também encontrará glifos, setas, relâmpagos, meteoros – para aqueles obcecados com a customização, há muito com que trabalhar.

4. Outro item que pode ser de interesse dentro do meu terminal são os ícones coloridos da pasta/arquivo. I’m using a ruby gem called “colorls”- which you can find here.

Colorls installation:

Colorls, once installed, adds some glyphs to your ls command, and can be configured to show informative reports, realign and reconfigure the output of ls, among many other options. Follow the installation instructions within the repository.

To get colorls to print every time the ls command is used, you will need to use an alias within your .zshrc file.

To configure this, head into your .zshrc file, and scroll to the very bottom.

Paste the following:

alias ls=’colorls — light — sort-dirs — report’
alias lc=’colorls — tree — light’

This will get your ls looking identical to mine. Additionally, inputting the lc command will print a tree-view version of ls. Como aviso, eu só recomendo fazer isso em diretórios menores – pode ficar lento enquanto indexando pastas maiores.

Notas Finais no meu Prompt:

No iTerm, eu estou usando um esquema de cores chamado termnk – você pode encontrá-lo aqui.

Adicionalmente, uma longa lista de temas de cores do iTerm pode ser encontrada aqui.

Para Hyper, minha configuração é a seguinte:

plugins: ,

Mile 5: Conclusão: Tips, Resources, and Where to Go From Here

Por este ponto, você deve ter um terminal zsh funcional com um ótimo começo na sua própria configuração personalizada. Depois de ver minha configuração pessoal, e potencialmente emulando partes dela, você deve agora ter uma boa idéia de algumas das belas e infinitas opções disponíveis para o zsh shell no Mac. Isto, no entanto, é apenas o início da viagem. Este guia não pretende ser exaustivo – existem muitas mais possibilidades e recursos surpreendentes para ajustar o seu shell e fluxo de trabalho para o que quer que você queira que ele se pareça, sinta e execute como quiser. Esta parte final é dedicada a delinear alguns recursos fantásticos para continuar a sua aprendizagem e continuar a explorar a partir daqui.

Leitura recomendada:

Existem muitos mais plugins zsh incríveis que podem ajudar na pesquisa, grepping, adição de screensavers ao seu terminal como pipes.sh, ou prompts informativos de carga como Neofetch. Eu recomendo ler e encontrar mais alguns plugins para se adequar ao seu fluxo de trabalho.

Simplesmente, um compêndio de recursos úteis relacionados a todas as coisas zsh.

Uma comunidade focada em ricing/customization de todas as coisas Unix. Enquanto o Linux é a força dominante aqui, uma rápida busca por ‘OSX’ irá lhe dar alguns exemplos inspiradores.

Como notado, uma lista curada de frameworks de terminais, extensões e recursos. Esta é uma excelente referência – altamente recomendada.

Um aplicativo de test drive interativo para visualizar algumas das melhores fontes de programação disponíveis. A maioria/tudo é grátis, e tem uma versão corrigida para download a partir de fontes nerd.

A lista definitiva de temas Hyper & plugins. Se você decidir usar Hyper, esta deve ser uma de suas primeiras paradas.

Conclusion:

Keep exploring and working on your terminal experience. Ficar entusiasmado com o aspecto da sua linha de comando vai ajudá-lo a ficar mais entusiasmado em aprender como usá-la, sobre programação (se aplicável), e é apenas divertido.

À medida que mais usuários entram no mundo da personalização da linha de comando, mais opções e inovações certamente serão seguidas. Apesar do Linux geralmente ter mais suporte para esse tipo de personalização, espero que isso tenha aberto os olhos de alguns leitores para algumas das incríveis configurações de terminal possíveis no OS X.

Ver meu outro trabalho cobrindo o ícone Mac & customização do dock aqui.

Deixe uma resposta

O seu endereço de email não será publicado.