O que o Atom, VSCode, SublimeText, Eclipse... possuem em comum? Não são o Vim!
O treinamento consiste em mostrar que o Vim não é o monstro complicado que todos pensam, mas sim, um poderoso editor que pode ser customizado, que é útil, onipresente e que lhe dará mais facilidade no dia a dia.
9. Quem sou eu?
Carlos Henrique
No UOL: @chsantana
Fora do UOL: @carlohcs
UOL:
Software Engineer e PO (Onboarding)
Time: co:lab (uol.com/colab)
Projetos:
Sobre UOL, Uol Música Deezer, Zero, Uol
Bootstrap, Eye Catcher, Reunião de
fronts…
Pessoal:
https://missaopessoal.com.br
https://carlohcs.com.br
11. Antes de começar... Créditos
O conteúdo desta apresentação foi baseado nos vídeos:
● Apresentação de Magnun Leno, com o título de
"Grupylango - Vim - mais que um editor";
● Marcos Oliveira, com o título de
“Curso do Editor de Textos Vim Para Iniciantes”;
● e um pouco da minha experiência :)
13. Objetivo do curso
• Acabar com a ideia "Everybody hates Vim";
• Entender o seu "cerne" e design;
• Acabar com o conceito de ESC+ digita + digita...
• Entender que o Vim é um editor DIY (Do It Yourself - faça
você mesmo).
15. Dicas importantes
• Não tente absorver tudo!
• O Vim tem que estar mais presente nos
músculos do que na mente.
(vamos exercitar a famosa memória muscular!)
17. Conteúdo Programático
• Um pouco de história
• Motivos para usar o Vim
• Bora lá?!
• Abrindo o Vim
• Movimentação
• Modos
• Conversando com o Vim
• Macros
• Recomendações
• Plugins
• Conteúdos de estudo
• Games
• Bônus
• Dúvidas
• I Like / I Wish
19. Um pouco de história
• 1969: O padrão de comunicação era a TTY:
• O Teletypewriter ou Teleprinter
■ TWO TELETYPE MODEL 37s LINK FOR RELAY
CHAT AT 150 BAUD
20. Um pouco de história
• 1971: Ken Thompson cria "ed", um line
editor. (mesmo comportamento TTY)
• Ed text editor
21. Um pouco de história
• 1976: Bill Joy cria "ex", outro line editor
• Implementa o comando :visual (:vi)
• Este modo possibilita abrir o arquivo
inteiro!
22. Um pouco de história
• 1991: Bram Moolenaar cria o Vim.
E o nome?!
23. Vi: Abreviação de Visual
Vim é abreviação para Vi improved, ou Vi melhorado
Um pouco de história
25. • Onipresente;
• Não exige ambiente gráfico;
• É leve; (Abrir 10.000 linhas aqui? Manda ver!) (pode abrir também no
modo ed)
• Suporta inúmeras linguagens;
• Customizável, extensível e escriptável;
• Saúde: Sem muitas dores nos braços! Esse lance de mouse +
teclado complica. Quem nunca sentiu dor com isso?
Motivos para usar o Vim
37. Agora é com vocês!
1. Baixar e extrair o arquivo do endereço: https://cutt.ly/curso-vim
2. Abrir o arquivo '01-noticia.txt';
3. Vamos nos movimentar pelos arquivos!
a. Exercício:
i. Chegar na palavra “extremamente” (linha 8);
ii. Chegar ao fim do arquivo;
iii. Chegar na palavra "Hillary" (linha 13)
39. Principais
• gg / G - início do arquivo / fim do arquivo.
• :20 + <ENTER> ou 20G - pula para a linha.
• <ctrl-u> / <ctrl-d> - Paginação para cima/baixo.
• Palavras w, e, b e etc.
• w - Pula para o começo da palavra.
• e - Pula para o fim da palavra/próxima palavra.
• b - Pula para o começo.
• 0 ou ^ - Pula para o início da linha.
• $ - Pula para o fim da linha.
Movimentação
40. Principais
• gg / G - início do arquivo / fim do arquivo.
• :20 + <ENTER> ou 20G - pula para a linha.
• <ctrl-u> / <ctrl-d> - Paginação para cima/baixo.
• Palavras w, e, b e etc.
• w - Pula para o começo da palavra.
• e - Pula para o fim da palavra/próxima palavra.
• b - Pula para o começo.
• 0 ou ^ - Pula para o início da linha.
• $ - Pula para o fim da linha.
Movimentação
Mão na massa!
1. Chegar na palavra “potenciais”
(linha13);
2. Chegar na palavra “causa” (linha 15);
3. Chegar na palavra “Sciutto” (linha
17).
41. Outros
• { } -> pula para o parágrafo acima/abaixo.
• ( ) -> pula para a frase acima/abaixo.
• Ir para porcentagem do arquivo <número>%
• Entre pares - %.
Movimentação
Mão na massa!
• Abrir o arquivo “02-codigo.vue”;
Executar o comando:
set filetype=html
• Pular entre pares das chaves; (linha
16)
• Pular para 10%, 50% e 100% do
arquivo
50. ESC + i - Modo de inserção
i / I - insere antes do cursor / início da linha.
o / O - insere uma linha abaixo / acima.
a / A - insere após o cursor / no final da linha.
s / S - remove o caractere do cursor e posiciona
para escrita. / apaga a linha corrente e
posiciona para escrita.
C - apaga conteúdo do cursor até o fim da linha.
gi - Último item que estava sendo inserido.
Modos
51. ESC + i - Modo de inserção
Modos
Mão na massa!
1. Abrir os arquivos dentro
da pasta “codigo” e fazê-los
funcionar
i / I - insere antes do cursor / início da linha.
o / O - insere uma linha abaixo / acima.
a / A - insere após o cursor / no final da linha.
s / S - remove o caractere do cursor e posiciona
para escrita. / apaga a linha corrente e
posiciona para escrita.
C - apaga conteúdo do cursor até o fim da linha.
gi - Último item que estava sendo inserido.
52. Pera ae… como salva?!
<Esc> + :w - salva algo que escrevemos
<Esc> + :wq ou :x - salva algo que escrevemos e sai do Vim
<Esc> + :q - Sai sem salvar
<Esc> + :q! - Sai sem salvar nada
<Esc> + :wa - salva todos os arquivos abertos
<Esc> :set autowriteall - salva a cada alteração efetuada
Modos
53. Pera ae… e se eu errar?
u - desfaz a última alteração // famoso ctrl + z
<ctrl+r> - refaz a última alteração
Modos
54. Exemplos internos:
Abrir um arquivo:
<ESC> :e index.html
Definir o tamanho da coluna visível:
<ESC> :set columns=80
Definir números visíveis:
<ESC> :set number
Definir linha do cursor:
<ESC> :set cursorline
ESC + : Modo de comandos
Modos
55. Exemplos externos:
Só mostrar o conteúdo de um arquivo:
<ESC> + ! cat C:/Windows/System32/drivers/etc/hosts
ou
Como pegar o hostname e retorná-lo para o VIM?
<ESC> + r! cat C:/Windows/System32/drivers/etc/hosts
ou
...
ESC + : Modo de comandos
Modos
56. Exemplos externos:
Só mostrar o conteúdo de um arquivo:
<ESC> + ! cat C:/Windows/System32/drivers/etc/hosts
ou
Como pegar o hostname e retorná-lo para o VIM?
<ESC> + r! cat C:/Windows/System32/drivers/etc/hosts
ou
...
ESC + : Modo de comandos
Modos
E para abrir nossa página no
chrome direto do Vim? Alguém?
57. Exemplos externos:
Só mostrar o conteúdo de um arquivo:
<ESC> + ! cat C:/Windows/System32/drivers/etc/hosts
ou
Como pegar o hostname e retorná-lo para o VIM?
<ESC> + r! cat C:/Windows/System32/drivers/etc/hosts
ou
...
ESC + : Modo de comandos
Modos
E para abrir nossa página no chrome direto
do Vim? Alguém? (Windows)
<ESC> ! start chrome ”index.html" index.html
58. Teclas que te levam ao modo visual:
v - seleciona a linha inteira andando com o cursor;
V - seleciona a linha inteira, independentemente do andamento do
cursor.
<ctrl-v> - Seleção de bloco -> ao você descer ou subir, dá preferência
pela seleção de linhas por onde o cursor está.
Modos
ESC + Modo visual
59. Teclas que te levam ao modo visual:
v - seleciona a linha inteira andando com o
cursor;
V - seleciona a linha inteira,
independentemente do andamento do
cursor.
<ctrl-v> - Seleção de bloco -> ao você
descer ou subir, dá preferência pela seleção
de linhas por onde o cursor está.
Modos
ESC + : Modo visual Mão na massa!
1. Abrir o arquivo “style.css”;
2. Copiar o trecho do código de
“.texto2”;
3. Colar o trecho de código após
a última linha;
4. Alterá-lo para .texto4 e alterar
de “red” para “green”;
Exemplo na tela.
60. Pera ae… como copia e cola?
y - copia item selecionado - com o mouse - após selecionar: shift+ctrl+c
Y ou yy - copia a linha inteira
p - cola - com o mouse - após copiar: shift+ctrl+v
x ou backspace ou delete - apaga caractere - para frente ou pra trás
dd - apaga a linha inteira
<shift> c - apaga a continuidade da linha onde o cursor estiver e coloca no modo de inserção
Modos
61.
62. O poder da seleção de bloco!
Modos
<Ctrl><v> + <Shift> + <i>
Mão na massa!
1. Abrir o arquivo “03-macro-CSV-2-SQL.txt”;
2. Vamos criar instruções SQL;
Vamos juntos!
63. ESC + / - Busca e alteração
Pressione <ESC> /palavra a encontrar.
E como faço para alterar?
Pressione <ESC>
:%s/<palavra a encontrar>/palavra nova/g
Modos
Mão na massa!
1. Abrir o arquivo “style.css”;
2. Alterar a palavra “green” por
“yellow”.
68. Similaridade com a linguagem escrita:
Verbos, substantivos, adjetivos, quantitativos...
Sintaxe: <quantitativo><verbo><substantivo><adjetivo>
Conversando com o Vim
69. Exemplos:
• dw - Apague a palavra.
• da} - Apague a chave e seu conteúdo.
• 3dw - 3 vezes apague a palavra.
• dt> - Apague até >.
• di) - Apague conteúdo de parênteses >.
• Mude dentro da tag ( cit ) !!! // ci} / cit] ci' ci".
• Remove a tag ( cat )
Conversando com o Vim
70. Helpers
• f / F + conteúdo a procurar na linha.
• <ctrl-a> / <ctrl-x> -> Incremento e decremento
• <ctrl-x><ctrl-n> -> Autocompletar palavra.
• <ctrl-x><ctrl-l> -> Autocompletar linha.
• <ctrl-x><ctrl-f> -> Autocompleta com o sistema de arquivos.
• <ctrl-x><ctrl-k> -> Autocompleta com o dicionário.
• <ctrl-p> -> Autocompleta o texto.
Conversando com o Vim
71. Helpers
• r + novo caractere - Substitui o caractere corrente.
• R - sobrescreve texto da linha.
• J - mescla linhas (útil em listas variáveis por exemplo).
Conversando com o Vim
72. Mão na massa!
- Abrir o arquivo LOG-IP.txt
Vamos conversar com o Vim.
Conversando com o Vim
76. Macros permitem-nos executar inúmeros de comandos com
apenas uma ação!
Iniciando uma macro: q<letra>
Encerrando: q
Executando: @<letra> ou @@
Possível utilizar macros dentro do find/replace.
Verificando macros criadas:
:registers
Macros
77. Iniciando uma macro: q<letra>
Encerrando: q
Executando: @<letra>
Macros
Mão na massa!
1. Abrir o arquivo “03-macro-1-lista-HTML.txt”;
2. Vamos reproduzir o exemplo do vídeo e mais algumas coisas.
80. Recomendações - Plugins
Recomendação: Não utilize plugins sem um sistema de plugins!
• Vundle (https://github.com/VundleVim/Vundle.vim)
• Pathogen (https://github.com/tpope/vim-pathogen)
• Neobundle (https://github.com/Shougo/neobundle.vim)
• Vim-plug (https://github.com/junegunn/vim-plug)
Úteis
Centralizador de plugins: http://vimawesome.com/
88. (Se perdeu os arquivos: https://tinyurl.com/y2meypc5)
1. Entrar na pasta configurar
a. Copiar os arquivos para C:Users<user> (Windows)
i. ou ~/ (Linux)
2. Abrir o Bash (ou instalar o Git Bash - Windows)
3. Ao término da instalação, abrir novamente o vim:
vim
Plugins - Vamos ver alguns em ação?
89. O que acabamos de configurar?
Plugins - Vamos ver alguns em ação?
93. Recomendações - Conteúdos de estudo - Livros
Livros Gratuitos
• A Bite of VIM (https://vim.swaroopch.com/)
• VIM Cookbook (http://www.oualline.com/vim-cook.html)
• VIM Book (https://github.com/cassiobotaro/vimbook)
Livros Pagos
• Learning the VI and VIM Editors (https://www.amazon.com/Learning-Vim-Editors-
Processing-Maximum/dp/059652983X)
• Hacking VIM (https://www.amazon.com/Hacking-Vim-7-2-Kim-Schulz/dp/1849510504)
• Pratical VIM (https://pragprog.com/book/dnvim2/practical-vim-second-edition)
95. Recomendações - Conteúdos de estudo - Sites
Sites
• Vim Ninjas (http://www.vimninjas.com/)
• USE VIM (https://medium.com/usevim)
• VIM Bits (https://github.com/kkuchta/Vimbits)
• VIM Awesome (http://vimawesome.com/)
• TIL VIM (http://tilvim.com/)
• R/vim (https://www.reddit.com/r/vim/)
• R/vimplugins (https://www.reddit.com/r/vimplugins/)
• r/vim_magic (https://www.reddit.com/r/vim_magic/)
• VIM | Stack Overflow (https://stackoverflow.com/questions/tagged/vim)
• Writing vim plugins (http://stevelosh.com/blog/2011/09/writing-vim-plugins/)
96. Recomendações - Conteúdos de estudo - Super úteis
Super úteis
• VIM Notes Wiki (https://github.com/shinokada/vimnotes)
Veja arquivos .vimrc's de outras pessoas!