Baixar o código: LearnVim-pt.txt
Vim (Vi IMproved - Vi Melhorado) é um clone do editor vi para Unix. Ele é um editor de texto projetado para ter velocidade e produtividade, e está presente na maioria dos sistemas UNIX. O editor tem um grande número de atalhos de teclado para agilizar a navegação para pontos específicos no arquivo, além de edição rápida.
vim <nome-do-arquivo> # Abre <nome-do-arquivo> no vim
:q # Fecha o vim
:w # Salva o arquivo atual
:wq # Salva o arquivo e fecha o vim
:q! # Fecha o vim e descarta as alterações no arquivo
# ! depois de qualquer comando força a sua execução
# ! *força* :q a executar, fechando o vim sem salvar antes
:x # Salva o arquivo e fecha o vim (atalho para :wq)
u # Desfazer
CTRL+R # Refazer
h # Move o cursor para a esquerda
j # Move o cursor para baixo
k # Move o cursor para cima
l # Move o cursor para a direita
# Movendo o cursor dentro da linha
0 # Move para o início da linha
$ # Move para o final da linha
^ # Move para o primeiro caractere da linha (ignora caracteres em branco)
# Pesquisa no texto
/palavra # Destaca todas as ocorrências de 'palavra' após o cursor
?palavra # Destaca todas as ocorrências de 'palavra' antes do cursor
n # Move o cursor para a próxima ocorrência após a pesquisa
N # Move o cursor para a ocorrência anterior após a pesquisa
:%s/foo/bar/g # Substitui 'foo' por 'bar' no arquivo inteiro
:s/foo/bar/g # Substitui 'foo' por 'bar' na linha atual
# Pulando para caracteres específicos
f<caracter> # Posiciona o cursor no próximo <caracter>
t<character> # Posiciona o cursor antes do próximo <caracter>
# Por exemplo,
f< # Posiciona o cursor no <
t< # Posiciona o cursor logo antes do <
# Movendo por palavras
w # Move o cursor uma palavra adiante
b # Move o cursor uma palavra atrás
e # Move o cursor ao fim da palavra atual
# Outros caracteres para mover o cursor no arquivo
gg # Move para o topo do arquivo
G # Move para o final do arquivo
:NUM # Move para a linha NUM (NUM é qualquer número)
H # Move para o topo da tela visível
M # Move para o meio da tela visível
L # Move para o final da tela visível
O Vim é baseado no conceito de modos.
Modo Comando - usado para navegar e escrever comandos - o Vim já inicia nesse modo Modo Inserção - usado para fazer alterações no arquivo Modo Visual - usado para destacar textos e executar comandos neles Modo Ex - usado para ir a linha com ‘:’ no final da tela para executar comandos
i # Coloca o Vim no Modo Inserção, logo antes do cursor
a # Coloca o Vim no Modo Inserção, logo após o cursor
v # Coloca o Vim no Modo Visual
: # Coloca o Vim no Modo Ex
<esc> # Sai de qualquer modo que você estiver, e coloca o Vim no Modo Comando
# Copiando e colando texto
y # Coloca a seleção atual na área de transferência
yy # Coloca a linha atual na área de transferência
d # Deleta a seleção tual
dd # Deleta a linha atual
p # Cola o texto copiado após a posição do cursor
P # Cola o texto copiado antes da posição do cursor
x # Deleta o caractere que está na posição do cursor
Podemos pensar no Vim como uma série de comendos em um formato ‘Verbo-Modificador-Nome’, onde:
Verbo - sua ação Modificador - como você executará sua ação Nome - o objeto onde você vai executar sua acão
Alguns exemplos importantes de ‘Verbos’, ‘Modificadores’ e ‘Nomes’:
# 'Verbos'
d # Apagar (Delete)
c # Alterar (Change)
y # Copiar (Yank)
v # Seleção Visual
# 'Modificadores'
i # Dentro (Inside)
a # Em torno de (Around)
NUM # Número (NUM qualquer número)
f # Pesquisa algo e posiciona o cursor acima do resultado
t # Pesquisa algo e posiciona o cursor logo antes do resultado
/ # Encontra algo a frente do cursor
? # Encontra algo antes do cursor
# 'Nomes'
w # Palavra (word)
s # Sentência
p # Parágrafo
b # Bloco
# Exemplos de comandos
d2w # Apaga 2 palavras
cis # Altera dentro de uma sentência
yip # Coloca o parágrafo atual da área de transferência)
ct< # Altera para '<'
# Altera todo o texto a partir da posição do cursor até o próximo '<'
d$ # Apaga tudo da posição do cursor até o final da linha
<!--TODO: Adicionar mais!-->
> # Adiciona um bloco de indentação
< # Remove um bloco de indentação
:earlier 15m # Reverte o documento para como ele estava há 15 minutos atrás
:later 15m # Reverte o comando acima
ddp # Troca linhas consecutivas de posição, dd e depois p
xp # Permuta caractere atual e o seguinte
Xp # Permuta caractere atual e o anterior
. # Repete a última ação
# Em geral, o usuário pode associar um comando em maísculas (exemplo: D) com
# "executar este comando até o final da linha"
# Usar a tecla de um comando duas vezes geralmente significa executar este
# comando sobre toda a linha (exemplo: dd apaga a linha inteira)
Macros, basicamente, são ações graváveis. Quando você começa a gravar uma macro, ele salva toda ação e comando que você usar, até que você pare de gravar. Ao executar uma macro, ele aplica exatamente a mesma sequencia de ações e comandos na seleção atual.
qa # Inicia a gravação de uma macro chamado 'a'
q # Para a gravação
@a # Executa a macro
@@ # Executa a última macro executada
O arquivo .vimrc pode ser usado para configurar o Vim no seu início.
Exemplo de arquivo ~/.vimrc
" Exemplo de ~/.vimrc
" 2015.10
" Obrigatório para rodar apenas no Vim (Vi Improved)
set nocompatible
" Determina o tipo de arquivo pelo nome para habilitar indentação automática, etc
filetype indent plugin on
" Habilita sintaxe colorida
syntax on
" Ativa um 'auto-completar' melhor para a linha de comando
set wildmenu
" Faz as buscas não diferenciarem maiúsculas-minúsculas (case insensitive)
" Exceto quando você usar letras maiúsculas
set ignorecase
set smartcase
" Quando criar uma nova linha e a indentação por tipo de arquivo estiver
" desabilitada, mantem a mesma indentação da linha atual
set autoindent
" Mostra o número das linhas à esquerda
set number
" Opções de indentação, aqui você pode mudar como preferir
" Número de espaços visíveis por TAB
set tabstop=4
" Número de espaços por TAB ao editar um arquivo
set softtabstop=4
" Número de espaços usados nas funções de indentação (>> e <<)
set shiftwidth=4
" Converte TABs em espaços
set expandtab
" Habilita indentação/alinhamento inteligente
set smarttab
Vim | Home (EN)
$ vimtutor pt
Vim: um tutorial/cartilha (EN)
O que são as partes sombrias do Vim que sua mãe nunca te explicou? (tópico no Stack Overflow) (EN)
Arch Linux Wiki (EN)
Sugestões ou correções? Abra uma issue no repositório do GitHub, ou faça um pull request você mesmo!
Originalmente contribuído por RadhikaG e atualizado por 4 colaborador(es).