Artigo original: Vimrc Configuration Guide - How to Customize Your Vim Code Editor with Mappings, Vimscript, Status Line, and More

Configurar o arquivo .vimrc  permite que você use o Vim e todo poder que ele oferece. Personalizando o arquivo .vimrc, você pode deixar o Vim dez vezes mais poderoso.

Neste artigo, vou mostrar algumas formas de personalizar o arquivo .vimrc.

Eu vou mostrar:

  • Configurações básicas
  • Plug-ins
  • Dobramento (folding)
  • Vimscript
  • Linha de status

Primeiro, crie a seguinte estrutura de diretórios no seu diretório home:

.vim/
 ├── autoload/
 ├── backup/
 ├── colors/
 └── plugged/
$ mkdir -p ~/.vim ~/.vim/autoload ~/.vim/backup ~/.vim/colors ~/.vim/plugged

Crie um arquivo .vimrc  no seu diretório home:

$ touch ~/.vimrc

Como atualizar as configurações básicas no VIM

Primeiro, adicionaremos algumas configurações básicas que melhorarão a sua experiência de edição. Eu costumo utilizar aspas duplas para comentar uma linha.

Adicione as linhas a seguir no seu arquivo .vimrc:

" Desabilitar a compatibilidade com vi, que pode causar problemas inesperados.
set nocompatible

" Habilitar a detecção do tipo de arquivo. O Vim será capaz de tentar detectar automaticamente o tipo de arquivo.
filetype on

" Habilitar plug-ins e carregar o plug-in correspondente ao tipo de arquivo detectado. 
filetype plugin on

" Carregar um arquivo de indentação correspondente ao tipo de arquivo detectado.
filetype indent on

O realce de sintaxe é muito útil. A próxima linha que adicionaremos ativará o realce de sintaxe e facilitará a leitura do seu código.

" Ativar o realce de sintaxe.
syntax on

Sem o realce de sintaxe:

vim_no_highlighting

Após ativar o realce de sintaxe:

vim_highlighting

Você também pode mostrar o número de linhas para facilitar a navegação no arquivo.

" Adiciona numeração ao lado esquerdo de cada linha.
set number
set_numbers

Você pode localizar exatamente onde o cursor está posicionado, destacando a linha em que ele se encontra, tanto na horizontal quanto na vertical.

Adicione essas linhas para ativar essa função.

" Destaca a linha do cursor horizontalmente, diretamente abaixo dele.
set cursorline

" Destaca a linha do cursor verticalmente, diretamente abaixo dele.
set cursorcolumn
set-cursor-line-column.png

Aqui estão algumas configurações comuns que melhoram a experiência de edição. Cada linha tem um comentário acima do comando explicando o que ele faz.

Adicione as linhas a seguir no seu arquivo .vimrc:

" Define o recuo como 4 espaços.
set shiftwidth=4

" Define ao tamanho da tabulação como 4 espaços.
set tabstop=4

" Utiliza espaço ao invés de tabulações.
set expandtab

" Não salva arquivos de backup.
set nobackup

" Não permite que o cursor role abaixo ou acima de um numero N de linhas ao rolar.
set scrolloff=10

" Não quebrar linhas. Permitir que as linhas longas se estendam até onde a linha vai.
set nowrap

" Destaca os caracteres correspondentes á medida que você os digita durante uma busca.
set incsearch

" Ignora letras maiúsculas durante a busca.
set ignorecase

" Sobrescreve a opção ignorecase se estiver buscando por letras maiúsculas.
"Isso permitirá que você procure especificamente por letras maiúsculas.
set smartcase

" Mostra o comando sendo executado.
set showcmd

" Mostra o modo em que você está.
set showmode

" Mostra as palavras correspondentes durante uma pesquisa.
set showmatch

" Utiliza destaque durante uma pesquisa.
set hlsearch

" Define os comandos a serem salvos no histórico, sendo 20 o número padrão
set history=1000

O autocompletar no Bash é uma excelente função que salva as teclas de atalhos enquanto você digita. O Vim tem uma função semelhante chamada wildmenu.

Adicione as linhas a seguir para ativar a função wildmenu. Você verá uma lista de arquivos que correspondem ao arquivo que você está pesquisando. Você também pode ativar o preenchimento automático no Vim.

" Habilita o menu de preenchimento automático ao pressionar TAB.
set wildmenu

" Faz com que o wildmenu se comporte de ,modo semelhante ao autocompletar do Bash.
set wildmode=list:longest

" Há certos arquivos que nunca gostaríamos de editar com o Vim.
" O Wildmenu ignorará arquivos com essas extensões.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
vim_wildmenu

Para obter mais informações sobre um comando específico, digite :help <comando>

Exemplo:

:help nocompatible

Como realizar dobramento de arquivos grandes no Vim

O arquivo .vimrc pode ficar extenso. Então, é uma boa ideia organizar por seções. O Vim deixa você dobrar arquivos grandes para esconder partes do texto.

Adicione as linhas a seguir no final do seu arquivo .vimrc para organizar o arquivo em seções.

" PLUG-INS ---------------------------------------------------------------- {{{

" Aqui ficam os códigos dos plug-ins

" }}}


" MAPEAMENTO --------------------------------------------------------------- {{{

" Aqui ficam os códigos de mapeamento.

" }}}


" VIMSCRIPT -------------------------------------------------------------- {{{

" Isso vai ativar o código de dobramento.
" Usa o método de marcadores para realizar o dobramento.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Aqui ficam mais alguns códigos de Vimscript.

" }}}


" LINHA DE STATUS ----------------------------------------------------------- {{{

" Aqui ficam os códigos da linha de status.

" }}}

Salve o arquivo .vimrc com :w e carregue o arquivo .vimrc usando o comando :source ~/.vimrc para as mudanças entrarem em vigor. Agora, quando você mover o cursor para uma dobra, você pode pressionar:

zo para abrir uma única dobra sob o cursor.

zc para fechar a dobra sob o cursor.

zR para abrir todos as dobras.

zM para fechar todas as dobras.

vim_open_close_fold

Digite :help folding para mais informações.

Como instalar plug-ins no Vim

Você pode instalar plug-ins no Vim para adicionar funcionalidades extras. A maioria das pessoas utiliza um gerenciador de plug-ins para tornar a instalação dos plug-ins mais fácil.

Há uma variedade de gerenciadores de plug-ins que podem ser usados. Vou mostrar como instalar e usar o gerenciador de plug-ins vim-plug.

Para instalar o plug-in vim-plug, execute o comando a seguir:

No Linux ou Mac OS:

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

No Windows com Powershell:

$ iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni $HOME/vimfiles/autoload/plug.vim -Force

Adicione as linhas call plug#begin('~/.vim/plugged') e call plug#end()  na seção de plug-ins. Os plug-ins instalados serão adicionados entre as chamadas dessas funções.

" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')




call plug#end()

" }}}

Agora instalar os plug-ins será tão simples quanto adicionar a string Plug 'username/plugin-name', que você encontrará no GitHub, entre as chamadas das funções.

É assim que faço a instalação do NERDTree e Asynchronous Lint Engine (ALE).

Adicione essas duas linhas entre as linhas call plug#...

" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')


  Plug 'dense-analysis/ale'

  Plug 'preservim/nerdtree'


call plug#end()

" }}}

Salve o arquivo .vimrc usando o comando :w e atualize o arquivo .vimrc com o comando :source ~/.vimrc para que as alterações façam efeito.

Agora, digite :PlugInstall para baixar e instalar os dois plug-ins.

vim-plug_install

Como mapear atalhos de teclado no Vim

Na seção de mapeamento, adicionaremos atalhos para facilitar a digitação de comandos longos. Isso reduzirá a quantidade de teclas utilizadas e o tempo de digitação, especialmente para comandos mais extensos.

A sintaxe ideal para mapeamento é a seguinte:

map_mode <o_que_voce_digita> <o_que_é_executado>

Modos de mapeamento populares no Vim

Aqui estão alguns modos populares de mapeamento, os quais podem ser considerados os mais úteis e importantes:

  • nnoremap – Permite mapear as teclas no modo normal.
  • inoremap – Permite mapear as teclas no modo de inserção.
  • vnoremap – Permite mapear as teclas no modo visual.

Um exemplo comum de mapeamento é associar 'jj' à tecla de Esc. Essa tecla é pressionada com frequência e está localizada no extremo do teclado. A letra 'j' está no meio do teclado, o que permite pressionar 'jj' de forma mais fácil em vez de usar a tecla Esc.

Desse modo, você pode mapear a tecla de Esc para: jj

inoremap jj <esc>

Como utilizar o Mapleader no Vim

O Mapleader permite que você defina uma tecla não utilizada pelo Vim como a tecla <leader>. Essa tecla, em conjunto com outras teclas, permitirá a criação de novos atalhos.

A tecla de barra invertida é a tecla líder padrão, mas algumas pessoas a alteram para a vírgula – ",".  

let mapleader = "\"

Com a tecla líder mapeada para a barra invertida, podemos usá-la do seguinte modo:

Desative o destaque de busca pressionando \\.
nnoremap <leader>\ :nohlsearch<CR>

Aqui estão alguns mapeamentos comuns que as pessoas costumam usar. Veja os comentários acima de cada linha para entender o que cada mapeamento faz.

Adicione este código na seção de mapeamentos:

" MAPEAMENTOS --------------------------------------------------------------- {{{

" Defina a barra invertida como a tecla líder.
let mapleader = "\"

" Pressione \\ para voltar à última posição do cursor.
nnoremap <leader>\ ``

" Pressione \p para imprimir o arquivo atual na impressora padrão em sistemas Linux.
" Veja as impressoras disponíveis: lpstat -v
" Defina a impressora padrão: lpoptions -d <nome_da_impressora>
" <silent> significa não exibir saída.
nnoremap <silent> <leader>p :%w !lp<CR>

" Digite jj para sair do modo inserção rapidamente.
inoremap jj <Esc>

" Pressione a barra de espaço para digitar o caractere : no modo de comando.
nnoremap <space> :

" Ao pressionar a letra o, uma nova linha será aberta abaixo da linha atual.
" Sair do modo de inserção cria uma nova linha acima ou abaixo da linha atual.
nnoremap o o<esc>
nnoremap O O<esc>

" Centralize verticalmente o cursor ao mover para a próxima palavra durante uma busca.
nnoremap n nzz
nnoremap N Nzz

" Yank do cursor até o final da linha.
nnoremap Y y$

" Mapeie a tecla F5 para executar um script Python dentro do Vim.
" Aqui, mapeia a tecla F5 para uma sequência de comandos.
" :w salva o arquivo.
" <CR> (carriage return) é como pressionar a tecla Enter.
" !clear executa o comando externo de limpeza da tela.
" !python3 % executa o arquivo atual com Python.
nnoremap <f5> :w <CR>:!clear <CR>:!python3 % <CR>

" É possível dividir a janela no Vim digitando :split ou :vsplit.
" Navegue nas visualizações divididas com mais facilidade pressionando CTRL+j, CTRL+k, CTRL+h, ou CTRL+l.
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l

" Redimensione as janelas divididas usando as setas do teclado pressionando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, ou CTRL+RIGHT.
noremap <c-up> <c-w>+
noremap <c-down> <c-w>-
noremap <c-left> <c-w>>
noremap <c-right> <c-w><

" Mapeamentos específicos do NERDTree.
" Mapeie a tecla F3 para alternar entre abrir e fechar o NERDTree.
nnoremap <F3> :NERDTreeToggle<cr>

" Faça o NERDTree ignorar certos arquivos e diretórios.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}

Digite help: map-modes para mais informações.

Como adicionar scripts ao Vim

Vimscript é uma linguagem de script que permite a criação de scripts usando variáveis, declarações de if/else e funções. Comandos automáticos esperam por eventos a serem acionados a partir de um disparador (trigger, em inglês).

" VIMSCRIPT -------------------------------------------------------------- {{{

" Habilitar o método de marcação para dobramento de código.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se o tipo de arquivo atual for HTML, configurar a indentação para 2 espaços.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se a versão do Vim for igual ou superior a 7.3, habilitar o uso de undofile.
" Isso permite desfazer alterações em um arquivo mesmo após salvá-lo.
if version >= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" É possível dividir uma janela em seções usando `:split` ou `:vsplit`.
" Exibir a linha do cursor e a coluna do cursor APENAS na janela ativa.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se estiver usando a versão GUI do Vim, definir essas opções abaixo.
if has('gui_running')

    " Definir do plano de fundo.
    set background=dark

    " Definir o tom de fundo.
    colorscheme molokai

    " Definir uma fonte personalizada instalada no seu computador.
    " Sintaxe: set guifont=<nome_da_fonte>\ <peso_da_fonte>\ <tamanho>
    set guifont=Monospace\ Regular\ 12

    " Mostrar mais do arquivo por padrão.
	" Ocultar a barra de ferramentas.
    set guioptions-=T

    " Ocultar a barra de rolagem do lado esquerdo.
    set guioptions-=L

    " Ocultar a barra de rolagem do lado direito.
    set guioptions-=r

    " Ocultar a barra de menu.
    set guioptions-=m

    " Ocultar a barra de rolagem inferior.
    set guioptions-=b

    " Mapear a tecla F4 para alternar a barra de menu, barra de 		ferramentas e barra de rolagem.
	" <Bar> é o caractere da barra vertical.
	" <CR> é a tecla Enter.
    nnoremap <F4> :if &guioptions=~#'mTr'<Bar>
        \set guioptions-=mTr<Bar>
        \else<Bar>
        \set guioptions+=mTr<Bar>
        \endif<CR>

endif

" }}}

Leia Learn Vimscript the Hard Way (em inglês) para mais informações sobre o Vimscript.

Digite :help autocmd para mais informações sobre comandos automáticos.

Como adicionar esquemas de cores no Vim

Você pode facilmente adicionar um esquema de cores no Vim mudando as cores do padrão. Faça uma busca por "Vim color schemes" e você encontrará muitas, muitas opções.

A instalação de um esquema de cores é simples. Basta adicionar um arquivo ao diretório: <esquema_de_cores>.vim~/.vim/colors/

Vamos adicionar o conhecido esquema de cores molokai:

$ cd ~/.vim/colors

$ curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7558  100  7558    0     0   150k      0 --:--:-- --:--:-- --:--:--  150k

Para definir o esquema de cores, digite esse comando:

:colorscheme molokai

Alguns exemplos de esquemas de cores:

vim_four_colorschemes
Esquemas de cor: molokai, base16-tomorrow, blue, one

Como configurar a linha de status no Vim

Você pode configurar a linha de status do Vim com informações úteis. Por exemplo, é possível configurar o tipo de arquivo, o número total de linhas no arquivo, o caminho para o arquivo, o número da coluna, o número da linha, a porcentagem de progresso no arquivo e muito mais.

Adicione esse código na seção "Linha de status":

" LINHA DE STATUS ---------------------------------------------------------- {{{

" Limpa a barra de status quando o vimrc é recarregado.
set statusline=

" Lado esquerdo da barra de status.
set statusline+=\ %F\ %M\ %Y\ %R

" Utiliza um divisor para separar o lado esquerdo do lado direito.
set statusline+=%=

" Lado direito da barra de status.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra a barra de status na penúltima linha.
set laststatus=2

" }}}

%F – Exibe o caminho completo do arquivo atual.

%M –  O indicador de arquivo modificado aparece enquanto o aquivo não for salvo.

%Y – Exibe o tipo de arquivo no buffer.

%R – Exibe o indicador de somente leitura.

%b – Mostra o caractere ASCII/Unicode sob o cursor.

0x%B – Mostra o caractere hexadecimal sob o cursor.

%l – Exibe o número da linha.

%c – Exibe o número da coluna.

%p%% – Mostra a porcentagem da posição do cursor em relação ao topo do arquivo.

vim_statusline

Digite help: statusline para mais informações.

Esse é o arquivo .vimrc completo.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               
"               
"               ██╗   ██╗██╗███╗   ███╗██████╗  ██████╗
"               ██║   ██║██║████╗ ████║██╔══██╗██╔════╝
"               ██║   ██║██║██╔████╔██║██████╔╝██║     
"               ╚██╗ ██╔╝██║██║╚██╔╝██║██╔══██╗██║     
"                ╚████╔╝ ██║██║ ╚═╝ ██║██║  ██║╚██████╗
"                 ╚═══╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝ ╚═════╝
"               
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               

" Desabilitar a compatibilidade com vi, que pode causar problemas inesperados.
set nocompatible

" Habilitar a detecção do tipo de arquivo.O Vim será capaz de tentar detectar automaticamente o tipo de arquivo.
filetype on

" Habilitar plugins e carregar o plug-in correspondente ao tipo de arquivo detectado.
filetype plugin on

" Carregar um aquivo de indentação correspondente ao tipo de arquivo detectado.
filetype indent on

" Ativar o destaque de sintaxe.
syntax on

" Adiciona numeração ao lado esquerdo de cada linha.
set number

" Destaca a linha do cursor horizontalmente, diretamente abaixo dele.
set cursorline

" Destaca a linha do cursor verticalmente, diretamente abaixo dele.
set cursorcolumn

" Define o recuo como 4 espaços.
set shiftwidth=4

" Define ao tamanho da tabulação como 4 espaços.
set tabstop=4

" Utiliza espaço ao invés de tabulações.
set expandtab

" Não salvar arquivos de backup.
set nobackup

" Não permite que o cursor role abaixo ou acima de um número N de linhas ao rolar.
set scrolloff=10

" Não quebrar linhas. Permitir que as linhas longas se estendam até onde a linha vai.
set nowrap

" Destaca os caracteres correspondentes a medida que você os digita durante uma busca.
set incsearch

" Ignora letras maiúsculas durante a busca.
set ignorecase

" Sobrescreve a opção ignorecase se estiver buscando por letras maiúsculas.
"Isso permitirá que você procure especificamente por letras maiúsculas.
set smartcase

" Mostra parte do comando que você digitou na última linha da tela.
set showcmd

" Mostra o modo em que você está na última linha.
set showmode

" Mostra as palavras correspondentes durante uma pesquisa.
set showmatch

" Utiliza destaque durante uma pesquisa.
set hlsearch

" Define os comandos a serem salvos no histórico, sendo o número padrão 20
set history=1000

" Habilita o menu de preenchimento automático ao pressionar TAB.
set wildmenu

" Faz com que o wildmenu se comporte de modo semelhante ao autocompletar do Bash.
set wildmode=list:longest

" Há certos arquivos que nunca gostaríamos de editar com o Vim.
"O Wildmenu ignorará arquivos com essas extensões.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx

" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')

  Plug 'dense-analysis/ale'

  Plug 'preservim/nerdtree'

call plug#end()

" }}}

" MAPEAMENTOS --------------------------------------------------------------- {{{

" Defina a barra invertida como a tecla líder.
let mapleader = "\"

" Pressione \\ para voltar à última posição do cursor.
nnoremap <leader>\ ``

" Pressione \p para imprimir o arquivo atual na impressora padrão em sistemas Linux.
" Veja as impressoras disponíveis: lpstat -v
" Defina a impressora padrão: lpoptions -d <nome_da_impressora>
" <silent> significa não exibir saída.
nnoremap <silent> <leader>p :%w !lp<CR>

" Digite jj para sair do modo inserção rapidamente.
inoremap jj <Esc>

" Pressione a barra de espaço para digitar o caractere : no modo de comando.
nnoremap <space> :

" Ao pressionar a letra o, uma nova linha será aberta abaixo da linha atual.
" Sair do modo de inserção cria uma nova linha acima ou abaixo da linha atual.
nnoremap o o<esc>
nnoremap O O<esc>

" Centralize verticalmente o cursor ao mover para a próxima palavra durante uma busca.
nnoremap n nzz
nnoremap N Nzz

" Yank do cursor até o final da linha.
nnoremap Y y$

" Mapeie a tecla F5 para executar um script Python dentro do Vim.
" Aqui, mapeio a tecla F5 para uma sequência de comandos.
" :w salva o arquivo.
" <CR> (carriage return) é como pressionar a tecla Enter.
" !clear executa o comando externo de limpeza da tela.
" !python3 % executa o arquivo atual com Python.
nnoremap <f5> :w <CR>:!clear <CR>:!python3 % <CR>

" É possível dividir a janela no Vim digitando :split ou :vsplit.
" Navegue nas visualizações divididas com mais facilidade pressionando CTRL+j, CTRL+k, CTRL+h, ou CTRL+l.
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l

" Redimensione as janelas divididas usando as setas do teclado pressionando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, ou CTRL+RIGHT.
noremap <c-up> <c-w>+
noremap <c-down> <c-w>-
noremap <c-left> <c-w>>
noremap <c-right> <c-w><

" Mapeamentos específicos do NERDTree.
" Mapeie a tecla F3 para alternar entre abrir e fechar o NERDTree.
nnoremap <F3> :NERDTreeToggle<cr>

" Faça o NERDTree ignorar certos arquivos e diretórios.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}

" VIMSCRIPT -------------------------------------------------------------- {{{

" Habilitar o método de marcação para dobramento de código.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se o tipo de arquivo atual for HTML, configurar a indentação para 2 espaços.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se a versão do Vim for igual ou superior a 7.3, habilitar o uso de undofile.
" Isso permite desfazer alterações em um arquivo mesmo após salvá-lo.
if version >= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" É possível dividir uma janela em seções usando `:split` ou `:vsplit`.
" Exibir a linha do cursor e a coluna do cursor APENAS na janela ativa.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se estiver usando a versão GUI do Vim, definir essas opções abaixo.
if has('gui_running')

    " Definir do plano de fundo.
    set background=dark

    " Definir o tom de fundo.
    colorscheme molokai

    " Definir uma fonte personalizada instalada no seu computador.
    " Sintaxe: set guifont=<nome_da_fonte>\ <peso_da_fonte>\ <tamanho>
    set guifont=Monospace\ Regular\ 12

    " Mostrar mais do arquivo por padrão.
	" Ocultar a barra de ferramentas.
    set guioptions-=T

    " Ocultar a barra de rolagem do lado esquerdo.
    set guioptions-=L

    " Ocultar a barra de rolagem do lado direito.
    set guioptions-=r

    " Ocultar a barra de menu.
    set guioptions-=m

    " Ocultar a barra de rolagem inferior.
    set guioptions-=b

    " Mapear a tecla F4 para alternar a barra de menu, barra de 		ferramentas e barra de rolagem.
	" <Bar> é o caractere da barra vertical.
	" <CR> é a tecla Enter.
    nnoremap <F4> :if &guioptions=~#'mTr'<Bar>
        \set guioptions-=mTr<Bar>
        \else<Bar>
        \set guioptions+=mTr<Bar>
        \endif<CR>

endif


" }}}

" LINHA DE STATUS ---------------------------------------------------------- {{{

" Limpa a barra de status quando o vimrc é recarregado.
set statusline=

" Lado esquerdo da barra de status.
set statusline+=\ %F\ %M\ %Y\ %R

" Utiliza um divisor para separar o lado esquerdo do lado direito.
set statusline+=%=

" Lado direito da barra de status.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra a barra de status na penúltima linha.
set laststatus=2

" }}}

Conclusão

Neste artigo, vimos brevemente o que é possível personalizar no Vim.
Existem milhares de maneiras de personalizar e configurar um arquivo .vimrc de acordo com suas preferências.
Você pode até mesmo criar seus próprios plug-ins e esquemas de cores e compartilhá-los com o mundo todo.

Espero que você tenha aprendido alguns truques novos ao ler esse artigo. Então, se você usa Vim, não saia de casa sem o seu .vimrc!

A propósito, utilizei o Vim para escrever este artigo.

Siga o autor no Github e no DEV.to