O Vim é um editor de texto altamente configurável que opera via terminal, amplamente utilizado por desenvolvedores e administradores de sistemas. Sua arquitetura baseada em modos permite executar tarefas complexas com poucos toques de teclado, tornando o fluxo de edição muito mais rápido quando bem dominado.
- Modos de Trabalho
O Vim diferencia-se de editores convencionais por organizar a interação em modos distintos. Entender essa divisão é essencial para usar a ferramenta sem frustração.
Modo Normal
- Modo padrão ao abrir o Vim.
- Usado para navegar, copiar, apagar e aplicar transformações.
- Pressione
Escpara retornar a este modo a qualquer momento.
Modo Inserção
- Permite digitar e modificar texto.
- Entre pressionando
i. - Pressione
Escpara voltar ao modo normal.
Modo Visual
- Usado para selecionar trechos de texto.
v: seleção por caractere.V: seleção por linha.Ctrl+v: seleção em bloco (colunas).
Modo de Comando
- Executa comandos internos do editor.
- Entre com
:e confirme comEnter.
- Abertura, Salvamento e Encerramento
Para iniciar, abra um arquivo diretamente do terminal:
vim projeto.py
Após editar, utilize os comandos abaixo para persistir ou sair:
:w " salva alterações
:q " fecha o editor
:wq " salva e fecha
:q! " descarta alterações e sai
:x " salva e sai, semelhante a :wq
- Entrando no Modo de Inserção
Existem várias maneiras de começar a digitar, dependendo de onde o cursor deve estar:
i " insere antes do cursor
a " insere depois do cursor
o " cria uma nova linha abaixo
O " cria uma nova linha acima
I " insere no início da linha
A " insere no final da linha
- Navegação pelo Texto
Movimentos Elementares
h " esquerda
j " baixo
k " cima
l " direita
Navegação por Palavras
w " próxima palavra
b " palavra anterior
e " final da palavra atual
Dentro da Linha
0 " início da linha
$ " fim da linha
^ " primeiro caractere não branco
No Arquivo
gg " topo do arquivo
G " final do arquivo
:25 " vai para a linha 25
Ctrl+g " exibe informações do arquivo
Rolagem da Tela
Ctrl+u " meia tela para cima
Ctrl+d " meia tela para baixo
Ctrl+b " tela inteira para cima
Ctrl+f " tela inteira para baixo
zz " centraliza a linha atual na tela
- Operações de Edição
Remoção
x " remove caractere sob o cursor
dd " remove a linha inteira
dw " remove até o fim da palavra
d$ " remove até o fim da linha
D " equivalente a d$
Alteração
cw " substitui a palavra atual
cc " substitui a linha atual
C " substitui do cursor até o fim da linha
r " substitui um único caractere
R " entra no modo de substituição contínua
Copiar, Colar e Desfazer
yy " copia a linha atual
yw " copia a palavra atual
p " cola após o cursor
P " cola antes do cursor
u " desfaz
Ctrl+r " refaz
- Trabalhando com Múltiplas Visões
Divisões de tela ajudam a consultar ou editar diferentes partes do mesmo arquivo simultaneamente:
:vsplit outro.txt " divide verticalmente
:split log.txt " divide horizontalmente
Ctrl+w w " alterna entre janelas
Ctrl+w h/j/k/l " move para a janela ao lado
Ctrl+w = " equaliza tamanhos
Ctrl+w q " fecha a janela atual
- Comandos do Sistema Operacional
É possível invocar programas externos sem abandonar o Vim:
:!gcc main.c -o app
:r !date " insere a saída do date no arquivo
:.!sort " ordena a linha atual
:'<,'>!uniq " remove duplicatas da seleção
- Gravação e Reprodução de Macros
Macros permitem automatizar sequências repetitivas:
qm " inicia gravação no registrador m
... " execute a sequência desejada
q " encerra gravação
@m " reproduz a macro m
5@m " reproduz cinco vezes
@@ " repete a última macro executada
- Busca e Substituição
Localização
/palavra " busca para frente
?palavra " busca para trás
n " próxima ocorrência
N " ocorrência anterior
* " busca a palavra sob o cursor
Substituição
:%s/erro/correto/g " global no arquivo
:10,30s/foo/bar/g " entre as linhas 10 e 30
:%s/antigo/novo/gc " confirma cada troca
- Configuração Inicial
As preferências do editor ficam no arquivo ~/.vimrc:
" Aparência e usabilidade
set number
set cursorline
set showcmd
set wildmenu
set laststatus=2
" Cores e sintaxe
syntax on
set background=dark
" Busca
set hlsearch
set incsearch
set ignorecase
set smartcase
" Indentação
set tabstop=2
set shiftwidth=2
set expandtab
set smartindent
" Codificação
set encoding=utf-8
set fileencoding=utf-8
- Gerenciamento de Plugins
Uma das formas mais populares de estender o Vim é com o vim-plug. Instale-o com:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Exemplo de configuração de plugins:
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'tpope/vim-commentary'
Plug 'morhetz/gruvbox'
call plug#end()
Após editar o .vimrc, execute :PlugInstall para baixar e instalar as extensões.
- Dicas Rápidas
:args *.md " abre todos os arquivos markdown
:bn " próximo buffer
:bp " buffer anterior
:bd " fecha o buffer atual
ma " cria marca a
`a " salta para a marca a
'. " salta para a última alteração
Ctrl+n " próxima sugestão de autocompletar
Ctrl+p " sugestão anterior
zf " cria dobra
zo " abre dobra
zc " fecha dobra