O documento fornece uma introdução ao editor de texto Vim, descrevendo suas principais características, como ser um software livre e multiplataforma, flexível e preparado para diversas linguagens de programação. Também explica como instalar e usar o Vim, demonstrando comandos básicos de navegação, edição, busca e substituição, além de recursos avançados como abas, buffers, janelas e plugins.
2. Palestrante: Gilson Filho
Comecei a programar à 6 anos;
Programador web a 4 anos;
Usuário linux há 5 anos;
Python, Java, ASP, Visual Basic;
Moderador do GruPy-DF;
Participante do Candjango;
Contribui com vários projetos opensource.
4. Sobre o Editor
Foi criado por Bram Moolenaar e seu primeiro
release foi em 1991;
Baseado no editor Vi, um editor usado em
sistemas Unix-like;
Possui novas e melhores funcionalidades, por isso
o nome (Vim – Vi Improved);
6. Características
S o f t w a r e L i v r e ( G P L ) : gratuito e
código fonte disponível;
O n i p r e s e n t e : ou seja, roda em qualquer
SO existente e em várias formas (terminal ou
gráfico):
Windows, Linux, Mac OS, AmigaOS, DOS, AIX, HP-
UX, FreeBSD, Solaris, etc...
7. Características
F l e x í v e l : programável com interpretadores
(Perl, Python e Ruby) ou sua linguagem de
script
P r e p a r a d o : suporte a 500 linguagens,
syntax hightlight e vários esquemas de cores
E x p e r i e n t e : já tem 20 anos de idade ;)
9. No Linux
Na maioria das distribuições Linux, o Vim já fica
instalado por padrão.
Pode-se instalar a versão gráfica do editor;
Debian
sudo apt-get install vim-gtk [vim-gnome]
Fedora
yum install gvim
Outras distribuições (compilando)
http://bit.ly/compile-gvim
16. Abrindo arquivos
Abrindo um ou mais arquivos
vim arq [arq2] [arqN]
Abrir em somente leitura
vim -R arq [arq2] [arqN]
Abrir e posiciona cursor na última linha
vim + arq
Abrir e posiciona cursor na linha X
vim +15 arq
Abrir arquivo e fazendo busca ao mesmo tempo
vim +/padrão arq
17. Fechando arquivos
Grava texto e continua editando
:w[!] ou :w[!] <nome do arquivo>
Grava texto (se tiver alteração) e sai do Vim
ZZ
Salva arquivo e sai do Vim
:wq[!]
Fecha do editor
:q
Fecha o editor sem salvar as alterações
:q!
! - mesmo em RO
20. Modos de operação
O Vim é um editor modal
Isso dificulta o estudo mas você tem:
Atalhos mais simples
Significados diferentes em cada modo de operação
Tipos:
Normal Mode
Insert Mode
21. Normal Mode
É usado para fazer ações simples:
Deletar;
Copiar;
Colar;
Entre várias outras...
Quando abre o editor, já está no Modo Normal
Atalho: <Esc>
22. Insert Mode
É neste modo que irá inserir o seu texto
Várias formas de iniciar o modo de edição:
<a> - inicia um caracter após do cursor atual
<i> - inicia um caracter antes do cursor atual
<Shift> + <a> - inicia no final da linha
<Shift> + <i> - inicia no início da linha
23. Visual Mode
Modo que seleciona um trecho de um texto que
deseja:
Por caracteres: <v>
Por linha: <Shift> + <v>
Por blocos: <Ctrl> + <v>
24. Command Mode
É aonde digita os comandos desejados para, por
exemplo:
Salvar
Ir para linha X
Copiar e colar
Procurar e substituir;
(...)
25. Copiando e colando
Copiar trecho selecionado
y ou :y
Copiar linha inteira
yy ou :yy
Colando no cursor atual
p ou :p
Colando acima da linha atual
P ou :P
27. Procurando e substituindo
Substituindo
Mudar trecho no cursor atual
:s/<texto antigo>/<texto novo>
Mudar trecho em todo o arquivo
:%s/<texto antigo>/<texto novo>
Mudar trecho em todo o arquivo (com confirmação)
:%s/<texto antigo>/<texto novo>/c
29. Registradores
Tem uma utilidade específica, que é armazenar
cópias internas, do clipboard, deleções, entre
outros;
Ou seja, é um clipboard do editor
:”0 - registra a seleção no registrador 0;
:”$ - registra a seleção no registrador $;
:”% - registra o nome do arquivo;
:”/ - registra o último padrão de busca;
30. Folds
São como dobras nas quais o vim esconde partes
do texto
zo – abre uma dobra;
zc – fecha a dobra;
zR – abre todas as dobras do arquivo atual;
zj – desce até a próxima dobra;
zk – sobe até a próxima dobra;
31. Abas
Criando uma aba
:tabnew [arq]
Criando uma aba e abrindo um arquivo
:tabedit arq
Alternando para a próxima aba
:tabnext
Alternando para a aba anterior
:tabprevious
32. Buffers
Arquivos abertos que estão na memória
Listando arquivos no buffer
:ls
Abrindo determinado arquivo do buffer
:buffer <id do buffer>
Indo para o próximo buffer
:bnext
Indo para o buffer anterior
: bprevious
33. Dividindo em janelas
Dentro da interface do editor, você pode abrir
várias janelas;
Abrindo uma janela lateral
<Ctrl> + w + v
Abrindo uma janela horizontal
<Ctrl> + w + n
Movendo para janela à esquerda e a direita
<Ctrl> + w + h / <Ctrl> + w + l
Movendo para janela para cima ou abaixo
<Ctrl> + w + k / <Ctrl> + w + j
39. Dicas importantes
Não decore todos os comandos. Aprenda uma
coisa de cada vez;
Aprendeu os comandos que precisa, então
busque novos comandos
Vai ser difícil, mas todo aprendizado exige esforço
– N o pain, N o gain;
40. Perguntas?
@gilsonfilho
blog.gilsondev.com (breve no github)
gilsondev.github.com
bitbucket.org/gilsondev
gilsondev.com