SlideShare une entreprise Scribd logo
1  sur  40
O editor onipresente e
       flexível
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.
O que é o Vim?
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);
Características
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...
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 ;)
Instalando o editor
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
No Windows

Possui interface gráfica para instalar:
  Download: http://bit.ly/windows-vim
  Next, Next, Finish.
No Mac OS

Projeto MacVim
  Download: http://bit.ly/macvim
  Instale em A pplications
Mostrando o Ambiente
Mostrando o Ambiente
Usando o editor


              5
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
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
Navegação
Editando arquivos
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
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>
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
Visual Mode
Modo que seleciona um trecho de um texto que
 deseja:
  Por caracteres: <v>
  Por linha: <Shift> + <v>
  Por blocos: <Ctrl> + <v>
Command Mode
É aonde digita os comandos desejados para, por
 exemplo:
  Salvar
  Ir para linha X
  Copiar e colar
  Procurar e substituir;
  (...)
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
Procurando e substituindo
Pesquisar
  Modo normal
    /<texto a ser procurado>


  Modo de comando:
    :/<texto a ser procurado>
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
Facilidades
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;
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;
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
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
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
Plugins
Plugins para programação
Surround
NERD Browser
Vim Indent Guides
Snipmate
Command-T
Vim-Git / Vim-Fugitive
Taglist
Plugins úteis
Pathogen
Vim powerline
Syntastic
Sparkup (Zen Coding)
Font Zoom
e vários outros...
Mais de
3.700 plugins
Indicações
Vimcasts – http://vimcasts.com
Vim Adventures (Jogo) - http://vim-adventures.com/
Openvim – http://openvim.com
Openvim BR – http://openvimbr.gilsondev.com
Vim Books (pt-BR) - http://code.google.com/p/vimbook/
Wikilivros - http://pt.wikibooks.org/wiki/Vim
Vim Wikia - http://vim.wikia.com/wiki/Vim_Tips_Wiki
Documentação (:help)
Twitter: @vimtips, @tpope, @vimrecipes
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;
Perguntas?
                                    @gilsonfilho
             blog.gilsondev.com (breve no github)
                            gilsondev.github.com
                          bitbucket.org/gilsondev
                                  gilsondev.com

Contenu connexe

Tendances

PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
Spock Framework 2
Spock Framework 2Spock Framework 2
Spock Framework 2Ismael
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...tdc-globalcode
 

Tendances (6)

Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Spock Framework 2
Spock Framework 2Spock Framework 2
Spock Framework 2
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
 
Node JS - Parte 4
Node JS - Parte 4Node JS - Parte 4
Node JS - Parte 4
 

Similaire à Vim - Um editor onipresente e flexível

TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao LinuxTzveDyor
 
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
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1willians
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bashSérgio Silva
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)Sérgio Silva
 

Similaire à Vim - Um editor onipresente e flexível (20)

O Vim é seu amigo e não seu inimigo!
O Vim é seu amigo e não seu inimigo!O Vim é seu amigo e não seu inimigo!
O Vim é seu amigo e não seu inimigo!
 
Aula 11 semana
Aula 11 semanaAula 11 semana
Aula 11 semana
 
Linux Editor VI
Linux Editor VILinux Editor VI
Linux Editor VI
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
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
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Lista de programas_freeware
Lista de programas_freewareLista de programas_freeware
Lista de programas_freeware
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1
 
Vim Rocks!
Vim Rocks!Vim Rocks!
Vim Rocks!
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
 
O Que é shell - bash
O Que é shell - bashO Que é shell - bash
O Que é shell - bash
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
So trabalho
So trabalhoSo trabalho
So trabalho
 
aula5_python.pdf
aula5_python.pdfaula5_python.pdf
aula5_python.pdf
 

Vim - Um editor onipresente e flexível

  • 1. O editor onipresente e flexível
  • 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.
  • 3. O que é o Vim?
  • 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
  • 10. No Windows Possui interface gráfica para instalar: Download: http://bit.ly/windows-vim Next, Next, Finish.
  • 11. No Mac OS Projeto MacVim Download: http://bit.ly/macvim Instale em A pplications
  • 14.
  • 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
  • 26. Procurando e substituindo Pesquisar Modo normal /<texto a ser procurado> Modo de comando: :/<texto a ser procurado>
  • 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
  • 35. Plugins para programação Surround NERD Browser Vim Indent Guides Snipmate Command-T Vim-Git / Vim-Fugitive Taglist
  • 36. Plugins úteis Pathogen Vim powerline Syntastic Sparkup (Zen Coding) Font Zoom e vários outros...
  • 38. Indicações Vimcasts – http://vimcasts.com Vim Adventures (Jogo) - http://vim-adventures.com/ Openvim – http://openvim.com Openvim BR – http://openvimbr.gilsondev.com Vim Books (pt-BR) - http://code.google.com/p/vimbook/ Wikilivros - http://pt.wikibooks.org/wiki/Vim Vim Wikia - http://vim.wikia.com/wiki/Vim_Tips_Wiki Documentação (:help) Twitter: @vimtips, @tpope, @vimrecipes
  • 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