SlideShare a Scribd company logo
1 of 103
Download to read offline
Treinamento de Vim
O Vim é seu amigo e não seu inimigo!
Talvez você tenha essa visão
sobre o Vim:
Resposta para sair do
Vim:
Aperte as teclas
<Esc> : <q>
Não fiquemos apenas nisso!
Vem que é sucesso!
Quem são vocês?
Quem são vocês?
- Nome
- Área/profissão
- Uma curiosidade
- Objetivo com o curso
?
Quem sou eu?
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
Antes de começar… Créditos
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 :)
Objetivo do curso
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).
Dicas importantes
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!)
Conteúdo Programático
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
Um pouco de história
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
Um pouco de história
• 1971: Ken Thompson cria "ed", um line
editor. (mesmo comportamento TTY)
• Ed text editor
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!
Um pouco de história
• 1991: Bram Moolenaar cria o Vim.
E o nome?!
Vi: Abreviação de Visual
Vim é abreviação para Vi improved, ou Vi melhorado
Um pouco de história
Motivos para usar o Vim
• 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
Bora lá?!
Abrindo o Vim
Abrir o programa 'Git Bash'
WINDOWS
Inserir 'vim' no terminal
WINDOWS
WINDOWS
Ajuda do Vim
Documentações: onde ficam?
Como pedir ajuda ao Vim?
Estando dentro do Vim, digitamos:
ESC + :help
Movimentação
A movimentação no Vim se dá pelas teclas: H, J, K e L.
Movimentação
Mas por qual motivo?
Hora da mão na massa!
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)
Pera ae... Não dá para melhorar?!
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
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).
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
Modos
Modos
Principais modos
Principais modos:
• Inserção: i, I
• Comando: Esc + :
• Visual / Visual Line: v, V
Modos
Outros (mas não iremos abordar)
• Select
• Ex
• Replace
• Operator-pending
• Virtual Replace
• Insert Normal
• Insert Visual
• Insert Select
Modos
Qual motivo de sempre usar ESC?!
Modos
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
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.
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
Pera ae… e se eu errar?
u - desfaz a última alteração // famoso ctrl + z
<ctrl+r> - refaz a última alteração
Modos
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
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
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?
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
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
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.
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
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!
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”.
Qual tecla que te tira de qualquer modo?
Modos
Pausa
Hora de tomar café :)
Conversando com o Vim
Similaridade com a linguagem escrita:
Verbos, substantivos, adjetivos, quantitativos...
Sintaxe: <quantitativo><verbo><substantivo><adjetivo>
Conversando com o Vim
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
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
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
Mão na massa!
- Abrir o arquivo LOG-IP.txt
Vamos conversar com o Vim.
Conversando com o Vim
Macros
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
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.
Recomendações
Recomendações
Plugins
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/
Recomendações - Plugins - Airline
Airline
(https://github.com/vim-airline/vim-airline)
Recomendações - Plugins - Emmet-vim
Emmet-vim
(https://github.com/mattn/emmet-
vim)
Recomendações - Plugins - YouCompleteMe
YouCompleteMe
(https://github.com/Valloric/YouCompleteMe)
Recomendações - Plugins - NERDTree
NERDTree
(https://github.com/scrooloose/nerdtree)
Recomendações - Plugins - Multiple Cursors
Multiple Cursors
(https://github.com/terryma/vim-multiple-cursors)
Recomendações - Plugins - Ctrl-P
Ctrl-P
(https://github.com/kien/ctrlp.vim)
Plugins
Vamos ver alguns em ação?
(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?
O que acabamos de configurar?
Plugins - Vamos ver alguns em ação?
Recomendações
Games
Recomendações - Games
Games
• VIM Adventures (educacional) (https://vim-adventures.com/)
• Sokoban (Jogo de empurrar caixas) (https://github.com/vim-scripts/sokoban.vim)
• Snake (http://www.vimsnake.com/)
• HJKL (estilo pacman) (https://github.com/vim-scripts/HJKL)
• FlappyVird (https://github.com/mattn/flappyvird-vim)
Recomendações
Conteúdos de estudo
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)
Recomendações - Conteúdos de estudo - Vídeos
Vídeos
• VIMCasts (http://vimcasts.org/)
• Derek Wyatt's Videos (http://derekwyatt.org/vim/tutorials/)
• Damian Conway, "More Instantly Better Vim" - OSCON 2013
(https://www.youtube.com/watch?v=aHm36-na4-4)
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/)
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!
Bônus
Bônus
- VIM + VSCode (Visual Studio Code)
(https://github.com/VSCodeVim/Vim)
Bônus
- VIM + Atom
(https://github.com/t9md/atom-vim-mode-plus)
Bônus
- VIM + SublimeText
(https://github.com/guillermooo/Vintageous)
Dúvidas?
I Like / I Wish
Treinamento de Vim: aprenda a dominar o poderoso editor

More Related Content

Similar to Treinamento de Vim: aprenda a dominar o poderoso editor

Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Revisao 1º bimestre
Revisao 1º bimestreRevisao 1º bimestre
Revisao 1º bimestreRenato Santos
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02thomasdacosta
 
Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.Pedro Franceschi
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioMarcos Antônio de Souza Silva
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
Shell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminShell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminMagno Torres
 
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCDesafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCJoão Zaratine
 
Br office lj
Br office ljBr office lj
Br office ljCarol Luz
 
Slide introdução digital
Slide introdução digitalSlide introdução digital
Slide introdução digitalanaluciajborges
 
Vim - Produtividade na ponta dos seus dedos
Vim - Produtividade na ponta dos seus dedosVim - Produtividade na ponta dos seus dedos
Vim - Produtividade na ponta dos seus dedosWilker Lucio
 

Similar to Treinamento de Vim: aprenda a dominar o poderoso editor (20)

Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Revisao 1º bimestre
Revisao 1º bimestreRevisao 1º bimestre
Revisao 1º bimestre
 
Aula 11 semana
Aula 11 semanaAula 11 semana
Aula 11 semana
 
Apresent dosvox janice
Apresent dosvox janiceApresent dosvox janice
Apresent dosvox janice
 
Apresent dosvox janice
Apresent dosvox janiceApresent dosvox janice
Apresent dosvox janice
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.Porque você deve aprender VIm hoje.
Porque você deve aprender VIm hoje.
 
Manual do JAWS
Manual do JAWSManual do JAWS
Manual do JAWS
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
Editor de texto.pptx
Editor de texto.pptxEditor de texto.pptx
Editor de texto.pptx
 
Aula 07 – Word 2010
Aula 07 – Word 2010Aula 07 – Word 2010
Aula 07 – Word 2010
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Shell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminShell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadmin
 
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSCDesafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
Desafios no desenvolvimento de uma aplicação real com Flex @ FUGSC
 
1 word
1 word1 word
1 word
 
Br office lj
Br office ljBr office lj
Br office lj
 
Slide introdução digital
Slide introdução digitalSlide introdução digital
Slide introdução digital
 
Vim - Produtividade na ponta dos seus dedos
Vim - Produtividade na ponta dos seus dedosVim - Produtividade na ponta dos seus dedos
Vim - Produtividade na ponta dos seus dedos
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 

Treinamento de Vim: aprenda a dominar o poderoso editor

  • 1. Treinamento de Vim O Vim é seu amigo e não seu inimigo!
  • 2. Talvez você tenha essa visão sobre o Vim:
  • 3.
  • 4. Resposta para sair do Vim: Aperte as teclas <Esc> : <q>
  • 5. Não fiquemos apenas nisso! Vem que é sucesso!
  • 7. Quem são vocês? - Nome - Área/profissão - Uma curiosidade - Objetivo com o curso ?
  • 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
  • 10. Antes de começar… Créditos
  • 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
  • 18. Um pouco de história
  • 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
  • 27.
  • 29. Abrir o programa 'Git Bash' WINDOWS
  • 30. Inserir 'vim' no terminal WINDOWS
  • 32. Ajuda do Vim Documentações: onde ficam? Como pedir ajuda ao Vim? Estando dentro do Vim, digitamos: ESC + :help
  • 34. A movimentação no Vim se dá pelas teclas: H, J, K e L. Movimentação Mas por qual motivo?
  • 35.
  • 36. Hora da mão na massa!
  • 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)
  • 38. Pera ae... Não dá para melhorar?!
  • 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
  • 42. Modos
  • 43.
  • 45. Principais modos: • Inserção: i, I • Comando: Esc + : • Visual / Visual Line: v, V Modos
  • 46. Outros (mas não iremos abordar) • Select • Ex • Replace • Operator-pending • Virtual Replace • Insert Normal • Insert Visual • Insert Select Modos
  • 47. Qual motivo de sempre usar ESC?! Modos
  • 48.
  • 49.
  • 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”.
  • 64. Qual tecla que te tira de qualquer modo? Modos
  • 67.
  • 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
  • 73.
  • 75.
  • 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/
  • 81. Recomendações - Plugins - Airline Airline (https://github.com/vim-airline/vim-airline)
  • 82. Recomendações - Plugins - Emmet-vim Emmet-vim (https://github.com/mattn/emmet- vim)
  • 83. Recomendações - Plugins - YouCompleteMe YouCompleteMe (https://github.com/Valloric/YouCompleteMe)
  • 84. Recomendações - Plugins - NERDTree NERDTree (https://github.com/scrooloose/nerdtree)
  • 85. Recomendações - Plugins - Multiple Cursors Multiple Cursors (https://github.com/terryma/vim-multiple-cursors)
  • 86. Recomendações - Plugins - Ctrl-P Ctrl-P (https://github.com/kien/ctrlp.vim)
  • 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?
  • 91. Recomendações - Games Games • VIM Adventures (educacional) (https://vim-adventures.com/) • Sokoban (Jogo de empurrar caixas) (https://github.com/vim-scripts/sokoban.vim) • Snake (http://www.vimsnake.com/) • HJKL (estilo pacman) (https://github.com/vim-scripts/HJKL) • FlappyVird (https://github.com/mattn/flappyvird-vim)
  • 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)
  • 94. Recomendações - Conteúdos de estudo - Vídeos Vídeos • VIMCasts (http://vimcasts.org/) • Derek Wyatt's Videos (http://derekwyatt.org/vim/tutorials/) • Damian Conway, "More Instantly Better Vim" - OSCON 2013 (https://www.youtube.com/watch?v=aHm36-na4-4)
  • 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!
  • 98. Bônus - VIM + VSCode (Visual Studio Code) (https://github.com/VSCodeVim/Vim)
  • 99. Bônus - VIM + Atom (https://github.com/t9md/atom-vim-mode-plus)
  • 100. Bônus - VIM + SublimeText (https://github.com/guillermooo/Vintageous)
  • 102. I Like / I Wish