O que é Vim
Vim é um editor de texto avançado amplamente utilizado em sistemas operacionais Unix. Possui o conceito de “modos”, permitindo edição eficiente de texto usando apenas o teclado. É amplamente utilizado em administração de servidores e programação.
Troca de Modos
O Vim possui vários modos, cada um com funções diferentes.
| Tecla | Modo | Descrição |
|---|
i | Modo de Inserção | Insere caracteres antes da posição do cursor |
a | Modo de Inserção | Insere caracteres após a posição do cursor |
I | Modo de Inserção | Move para o início da linha e começa a inserção |
A | Modo de Inserção | Move para o fim da linha e começa a inserção |
o | Modo de Inserção | Insere uma nova linha abaixo e começa a inserção |
O | Modo de Inserção | Insere uma nova linha acima e começa a inserção |
Esc | Modo Normal | Retorna ao modo normal de outros modos |
v | Modo Visual | Seleciona por caractere |
V | Modo Visual | Seleciona por linha |
Ctrl+v | Modo Visual | Seleção retangular (seleção em bloco) |
: | Modo de Comando | Insere comandos ex |
Movimentação do Cursor
A movimentação eficiente afeta significativamente a produtividade no Vim.
Movimentação Básica
| Tecla | Descrição |
|---|
h | Move 1 caractere para a esquerda |
j | Move 1 linha para baixo |
k | Move 1 linha para cima |
l | Move 1 caractere para a direita |
Movimentação por Palavra
| Tecla | Descrição |
|---|
w | Para o início da próxima palavra (word) |
W | Para a próxima palavra separada por espaço |
b | Para o início da palavra anterior (back) |
B | Para a palavra anterior separada por espaço |
e | Para o fim da palavra (end) |
E | Para o fim da palavra separada por espaço |
Movimentação na Linha
| Tecla | Descrição |
|---|
0 | Para o início da linha (coluna 0) |
^ | Para o primeiro caractere não-espaço da linha |
$ | Para o fim da linha |
f{char} | Pula para o próximo {char} na linha |
F{char} | Pula para o {char} anterior na linha |
t{char} | Para logo antes do próximo {char} |
; | Repete a busca f/F/t |
Movimentação no Arquivo
| Tecla | Descrição |
|---|
gg | Para o início do arquivo |
G | Para o fim do arquivo |
{n}G | Pula para a linha n |
:{n} | Pula para a linha n |
Ctrl+f | Rola uma página para baixo |
Ctrl+b | Rola uma página para cima |
Ctrl+d | Rola meia página para baixo |
Ctrl+u | Rola meia página para cima |
% | Pula para o parêntese correspondente |
100G
:100
Operações de Edição
Exclusão
| Tecla | Descrição |
|---|
x | Exclui 1 caractere na posição do cursor |
X | Exclui 1 caractere antes do cursor |
dd | Exclui 1 linha (recorta) |
D | Exclui do cursor até o fim da linha |
dw | Exclui uma palavra |
diw | Exclui a palavra inteira (inner word) |
di" | Exclui conteúdo dentro das aspas duplas |
di( | Exclui conteúdo dentro dos parênteses |
d$ | Exclui do cursor até o fim da linha |
Copiar e Colar
| Tecla | Descrição |
|---|
yy | Copia 1 linha (yank) |
yw | Copia uma palavra |
y$ | Copia do cursor até o fim da linha |
p | Cola após o cursor |
P | Cola antes do cursor |
"0p | Cola o último texto copiado (yanked) |
"+y | Copia para a área de transferência do sistema |
"+p | Cola da área de transferência do sistema |
Alteração (exclui e entra no modo de inserção)
| Tecla | Descrição |
|---|
cw | Altera uma palavra |
ciw | Altera a palavra inteira |
ci" | Altera conteúdo dentro das aspas duplas |
cc | Altera a linha inteira |
C | Altera do cursor até o fim da linha |
s | Exclui 1 caractere e entra no modo de inserção |
S | Exclui a linha e entra no modo de inserção |
Desfazer e Refazer
| Tecla | Descrição |
|---|
u | Desfazer (Undo) |
Ctrl+r | Refazer (Redo) |
. | Repete a última operação |
3u
5.
Busca e Substituição
Busca
| Tecla | Descrição |
|---|
/{pattern} | Busca para frente |
?{pattern} | Busca para trás |
n | Próximo resultado da busca |
N | Resultado anterior da busca |
* | Busca para frente a palavra sob o cursor |
# | Busca para trás a palavra sob o cursor |
'function'
/function
/pattern\c
/\<word\>
Substituição
:s/old/new/
:s/old/new/g
:%s/old/new/g
:%s/old/new/gc
:%s/old/new/gi
:10,20s/old/new/g
:'<,'>s/old/new/g
Operações de Arquivo
| Comando | Descrição |
|---|
:w | Salvar |
:w {filename} | Salvar como |
:q | Sair |
:q! | Forçar saída sem salvar |
:wq | Salvar e sair |
ZZ | Salvar e sair (igual a :wq) |
ZQ | Sair sem salvar (igual a :q!) |
:e {filename} | Abrir arquivo |
:r {filename} | Inserir conteúdo de arquivo |
:!{command} | Executar comando externo |
:w %.bak
:r !date
Operações de Janela
| Comando | Descrição |
|---|
:split | Divisão horizontal |
:vsplit | Divisão vertical |
Ctrl+w h | Para a janela à esquerda |
Ctrl+w j | Para a janela abaixo |
Ctrl+w k | Para a janela acima |
Ctrl+w l | Para a janela à direita |
Ctrl+w = | Igualar tamanho das janelas |
Ctrl+w q | Fechar janela |
Macros
Permite automatizar tarefas repetitivas.
qa
q
@a
5@a
@@
Configurações Úteis (.vimrc)
set number
set relativenumber
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set hlsearch
set incsearch
set ignorecase
set smartcase
set clipboard=unnamedplus
Plugins Populares
| Plugin | Descrição |
|---|
| vim-plug | Gerenciador de plugins |
| NERDTree | Explorador de arquivos |
| fzf.vim | Buscador fuzzy |
| vim-fugitive | Integração com Git |
| coc.nvim | LSP/Autocompletar |
Links de Referência
← Voltar para a lista