Entenda como customizar o VIM no MacOS

Se você já está começando a ficar fera no VIM, já é hora de dar os próximos passos. Nesse artigo, explico como configurar o VIM para MacOS da maneira que eu considero mais limpa (você pode querer instalar de outro jeito e tudo bem) e como configurar os plugins NerdTree, para acessar a árvore de diretórios; Status Tab para colocar na tela algumas ferramentas adicionais (e deixam o VIM muito bacana visualmente); e o plugin do Git, pra facilitar o controle de versionamento sem sair da aplicação. Boa leitura!

Tempo estimado de leitura: 4 minutos

Instalação

Evite usar o brew para isso, uma vez que ele não instala a aplicação MacVim.app na pasta /Applications como seria esperado. Isso já gerou muita discussão no forum https://github.com/Homebrew/homebrew-core/issues/20707. Então, prefira baixar direto do desenvolvedor e seja feliz =) .

Faça o download rapidamente aqui para iniciar a sua jornada: https://macvim-dev.github.io/macvim/

Depois de baixar e colocar na sua pasta de Aplicativos do MacOS, crie um link simbólico para chamar o app MacVim pelo terminal:

sudo ln -s /Applications/MacVim.app/Contents/bin/mvim /usr/local/bin/mvim

CLI

Obviamente se você chegou aqui, também gosta de usar vim no seu shell. Vamos utilizar o cli do VIM que está lá dentro do pacote do MacVim.app e já vem super atualizado.

Apenas acrescente esse alias no ~/.profile e estará tudo resolvido!

alias vim='mvim -v'

GUI

Existe um maneira de tornar o MacVIM.app, o GUI do VIM, o seu editor default do seu shell. Pessoalmente eu prefiro que o default seja a versão CLI =) Mas se você faz questão que o editor das aplicações externas seja mesmo sempre o GUI, pode colocar essa linha no ~/.profile:

export EDITOR='mvim -f'

Tema

Eu particularmente gosto do tema molokai. Mas deixo a sugestão para você encontrar seu tema favorito aqui: https://vimcolorschemes.com

Para continuar com o molokai mesmo, vamos seguir em frente. Abra o terminal e digite:

# Baixa molokai.vim direto do repositório 
wget https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim ~/.vim/colors 

Vou deixar outra opção muito usada, que é o monokai!

wget https://raw.githubusercontent.com/sickill/vim-monokai/master/colors/monokai.vim ~/.vim/colors

Edite o ~/.vimrc e insira as linhas abaixo. Descomente (“) o tema que você deseja utilizar:

" ativa marcação de sintaxes
syntax enable

" ativa tema
colorscheme molokai
"colorscheme monokai

Tabulação

Se você não gosta de substituir a tabulação do seu texto por espaços, edite o ~/.vimrc e troque o

    set expandtab

por

    set noexpandtab

NerdTree com Vim Plug

Primeiro, baixe o VimPlug:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Depois instale o plugin NerdTree e devicons apenas inserindo no final do ~/.vimrc

    call plug#begin()
      Plug 'preservim/nerdtree'
      Plug 'ryanoasis/vim-devicons'
    call plug#end() 

Instale algumas nerd-fonts facilmente com brew. Confira outras opções legais aqui.

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
brew install --cask font-fira-code-nerd-font
brew install --cask font-3270-nerd-font
brew install --cask font-jetbrains-nerd-font

Para que a fonte funcione certinho tanto no cli quanto no gui, insira mais 2 linhas no seu .vimrc. A primeira força o uso de UTF-8

    set encoding=UTF-8
    set guifont=Hack\ Nerd\ Font\ Mono:h12

Status tab com vim-airline

O vim não está completo sem a barra de status matadora do vim-airline! Basta adicionar o plug.

    Plug 'vim-airline/vim-airline'

Lembre-se que toda vez que instalar um plugin com VimPlug, abra o vim e instale com o comando :PlugInstall

Git

Para integrar com o git, é muito simples. Use o vim-fugitive (https://github.com/tpope/vim-fugitive)

Você pode instalar conforme consta no manual…

mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone https://tpope.io/vim/fugitive.git
vim -u NONE -c "helptags fugitive/doc" -c q

… mas eu prefiro instalar com Plug =D

    Plug 'tpope/vim-fugitive'

Resultado final

Veja o meu .vimrc completo:

" Forçar UTF-* para usar Nerd Font
set encoding=UTF-8

" Nerd Font é necessária para utilizar o vim-devicons no NerdTree
set guifont=Hack\ Nerd\ Font\ Mono:h15

" Exibe a régua inferior
set ruler

" Cria um highlight sobre a busca
set hlsearch

" Incrementa a busca conforme a digitação. 
" Funciona muito bem com hlsearch
set incsearch

" Exibe a régua lateral
set number

" Ignora Mm nas buscas 
set ignorecase

" Tabs já existentes passam a ter 4 espaçamentos
set tabstop=4

" When indenting with '>', use 4 spaces width
set shiftwidth=4

" Ao pressionar tab, insere tab no tamanho de 4 espaços.
" Se desejar que apenas espaços sejam inseridos, e não o
" tab, utilize então o comando set expandtab.
set expandtab

" Mostra o par de [] {} e ()
set showmatch

" Dicionário pt-br
"set spell spelllang=pt_br

" Marca a sintaxe
syntax enable

" Ativa o tema
colorscheme molokai
"colorscheme monokai

call plug#begin()
    Plug 'preservim/nerdtree'
    Plug 'Xuyuanp/nerdtree-git-plugin'
    Plug 'ryanoasis/vim-devicons'
    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    Plug 'tpope/vim-fugitive'
call plug#end()

" Configurações do Vim-Airline
" Smarter tabline
let g:airline#extensions#tabline#enabled = 1
" Ativa powerfonts para desenhar corretamente a tabline
let g:airline_powerline_fonts = 1

Isso é tudo!

Veja também

Comentários

Mais artigos

Como usar a bc, a calculadora do shell

bc = bench calculator, ou calculadora de bancada. Se você ainda não conhece a calculadora do seu shell, tá na hora de aprender a usá-la, mesmo que seu uso seja muito básico. O uso mais trivial das suas funções já deve suprir grande parte das suas necessidades. Mas não se deixe enganar, esse é um software realmente poderoso que definitivamente deve entrar no seu radar.

Leia o artigo »

URL encoding/decoding com sed

Existem várias formas de fazer encoding/decoding de urls. Geralmente os programadores já utilizam funções prontas para isso. Mas você realmente sabe o que essas funções estão fazendo? Para este artigo, escolhi o sed como ferramenta para substituir os códigos e aponto as RFCs que discorrem sobre o assunto.

Leia o artigo »

Como exibir cores no terminal

Quer exibir os textos com cores, negritos, itálicos, underline etc? Entendendo algumas regras e códigos, fica bem mais fácil do que parece. Entenda como exibir cores no seu terminal com a clareza de quem sabe o que está fazendo.

Leia o artigo »