SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
VIM-de a mim, Produtividade

                                             Gustavo Dutra

                                          http://gustavodutra.com


                                          November 13, 2009




Gustavo Dutra (http://gustavodutra.com)    VIM-de a mim, Produtividade   November 13, 2009   1 / 29
Sum´rio
    a
  1    Objetivo
  2    Vim
  3    Princ´
            ıpios
  4    Buscas
         Importˆncia
                a
         Buscando com eficiˆncia
                          e
  5    Opera¸˜es em massa
             co
         Exemplos
  6    Sessions
  7    Macros
  8    Pulos
  9    Abrevia¸˜es
               co
  10   Templates
         Exemplos
  11   Plugins
  12   D´vidas
        u
Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   2 / 29
Objetivo




  Propor algumas pr´ticas e repensar nossas a¸˜es a fim de torn´-las mais
                     a                          co                a
  eficazes e que consumam menos tempo e esfor¸o utilizando o Vim como
                                                   c
  editor de texto. Para isto, trago 3 princ´
                                           ıpios a serem seguidos e algumas
  solu¸˜es para os problemas que, pelo menos para mim, eram corriqueiros.
      co




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   3 / 29
Vim


  O Vim ´ um editor de texto e n˜o, necessariamente, um editor de
         e                        a
  c´digo-fonte. Pode-se editar f´cil e agilmente qualquer tipo de texto.
   o                            a
          Posts de blogs
          E-mails
          Textos para wiki, f´runs, etc
                             o
          Posts de twitter
          Criar PDF’s
          Criar apresenta¸˜es
                         co




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   4 / 29
Princ´
      ıpios

  S˜o 3 os princ´
   a            ıpios para aumentar a produtividade, levando em conta a
  vontade e a motiva¸˜o para ser produtivo:
                      ca




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   5 / 29
Princ´
      ıpios

  S˜o 3 os princ´
   a            ıpios para aumentar a produtividade, levando em conta a
  vontade e a motiva¸˜o para ser produtivo:
                      ca
          Detectando problemas
                 Erros constantes de digita¸˜o
                                           ca
                 Trabalho manual desgastante
                 Repeti¸˜o de textos
                       ca




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   5 / 29
Princ´
      ıpios

  S˜o 3 os princ´
   a            ıpios para aumentar a produtividade, levando em conta a
  vontade e a motiva¸˜o para ser produtivo:
                      ca
          Detectando problemas
                 Erros constantes de digita¸˜o
                                           ca
                 Trabalho manual desgastante
                 Repeti¸˜o de textos
                       ca
          Procurando solu¸˜es
                         co
                 Ler a documenta¸˜o
                                  ca
                 Procurar por plugins
                 Procurar por dicas em blogs
                 Criar um script em alguma linguagem




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   5 / 29
Princ´
      ıpios

  S˜o 3 os princ´
   a            ıpios para aumentar a produtividade, levando em conta a
  vontade e a motiva¸˜o para ser produtivo:
                      ca
          Detectando problemas
                 Erros constantes de digita¸˜o
                                           ca
                 Trabalho manual desgastante
                 Repeti¸˜o de textos
                       ca
          Procurando solu¸˜es
                         co
                 Ler a documenta¸˜o
                                  ca
                 Procurar por plugins
                 Procurar por dicas em blogs
                 Criar um script em alguma linguagem
          Criando h´bitos
                   a
                 Refazer utilizando a solu¸˜o
                                          ca
                 Brincar com arquivos de testes
                 Colar postit’s no monitor


Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   5 / 29
Buscas - Importˆncia
                a



          Certeza de encontrar todas as incidˆncias
                                             e
          Ficam visualmente destacadas (com :set hlsearch)
          Testar substitui¸˜es
                          co
          Verificar a ortografia atr´s de erros de digita¸˜o
                                  a                    ca
          Encontrar vari´veis ou fun¸˜es n˜o utilizadas, s´ declaradas
                        a           co    a               o
          Encontrar rapidamente algum termo
          Verificar a existˆncia de algum termo
                          e




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   6 / 29
Buscando com eficiˆncia
                  e




           /termo Busca pela incidˆncia de termo nos arquivos abertos
                                  e
        :vimgrep Abre os arquivos com a incidˆncia do termo na Quickfix List
                                             e
   :vimgrepadd Adiciona novos arquivos e incidˆncias a Quickfix List
                                              e
              :grep Executa um comando externo e abre os arquivos resultados
                    (set grepprg)
             :!grep Apenas mostra o output do comando externo




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   7 / 29
/termo


  Exemplos
          /texto
          /<casa<
          /$var
          /public void static Main(String[] args)
          /([0-9]+)texto1

  Navega¸˜o
        ca
                    n Avan¸a para a pr´xima incidˆncia
                          c           o          e
                   N Volta para a incidˆncia anterior
                                       e
                  zz Centraliza a linha atual na tela


Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   8 / 29
:vimgrep


  :help :vimgrep
  :vim[grep][!] /{pattern}/[g][j] {files}

          Busca incidˆncias de pattern nos files listados.
                     e
          pattern pode ser uma express˜o regular ou n˜o
                                      a              a
          A exclama¸˜o (!) ignora as altera¸˜es j´ feita no arquivo atual
                   ca                      co a
          g procura por todas as incidˆncias, n˜o s´ a primeira, em cada arquivo
                                      e        a o
          j pula para o primeiro resultado ao executar o comando
          files podem conter wildcards, como *, ? e **
          Os resultados s˜o abertos na quickfix list
                         a



Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   9 / 29
:vimgrep

  Exemplos
          :vimgrep! /$var/ arquivo.pl
          :vimgrep /texto/ *.rb
          :vimgrep /cTeXtO/ *.py dir/*.py
          :vimgrep /minhaFuncao/g **/*.c
          :vimgrep /<([ˆ ]+)[ˆ>]*>.+</1>/ index.html

  Navegando na Quickfix List
           :copen Abre a Quickfix List
            :cnext Posiciona o cursor sobre a pr´xima incidˆncia
                                                o          e
      :cprevious Posiciona o cursor sobre a incidˆncia anterior
                                                 e
           :cclose Fecha a Quickfix List

Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   10 / 29
:vimgrep


                                          Figure: :vimgrep /:q¿/g *tex




Gustavo Dutra (http://gustavodutra.com)        VIM-de a mim, Produtividade   November 13, 2009   11 / 29
:vimgrep

                                          Figure: Resultado




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   12 / 29
:vimgrep


                                             Figure: :copen




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   13 / 29
:vimgrep


                                             Figure: :cnext




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   14 / 29
Opera¸oes em massa
      c˜


  Comandos
  :bufdo cmd Executa um comando em todos os buffers abertos (:e)
  :bfirst
  :cmd
  :bnext
  :cmd
  ...
  :tabdo cmd Executa um comandos em todas as abas abertas (:tabnew)
  :tabfirst
  :cmd
  :tabnext
  :cmd
  ...


Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   15 / 29
Opera¸oes em massa
      c˜




  Comandos
  :windo cmd Executa um comandos em todas as janelas abertas (:[v]split)
  CTRL-w t
  :cmd
  CTRL-w w
  :cmd
  ...




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   16 / 29
Exemplos




          :bufdo :%s/$variavel velha/$variavel nova/g
          :bufdo :%g/ˆ$/d
          :bufdo :%g/ˆ#/d
          :tabdo :set fileencoding=utf-8 |:w
          :bufdo :0r header.file
          :windo :syntax on |:set syntax=tex




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   17 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?
  Respostas:
   1  Desliga o computador pressionando o bot˜o pra ir mais r´pido,
                                                a              a
      mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou
                 e o




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?
  Respostas:
   1  Desliga o computador pressionando o bot˜o pra ir mais r´pido,
                                                a              a
      mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou
                 e o
   2  Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1
                              a
      diff e est´ no meio de um algoritmo complexo
               a




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?
  Respostas:
   1  Desliga o computador pressionando o bot˜o pra ir mais r´pido,
                                                a              a
      mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou
                 e o
   2  Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1
                              a
      diff e est´ no meio de um algoritmo complexo
               a
   3  Finge que n˜o escutou nada
                  a




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?
  Respostas:
   1  Desliga o computador pressionando o bot˜o pra ir mais r´pido,
                                                a              a
      mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou
                 e o
   2  Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1
                              a
      diff e est´ no meio de um algoritmo complexo
               a
   3  Finge que n˜o escutou nada
                  a
   4  Desliga o monitor e reza pra que ningu´m mais mexa no
                                              e
      computador




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz:
                  e    a
  ”amor, desliga esse computador e vamos pro quarto”. O que fazer?
  Respostas:
   1  Desliga o computador pressionando o bot˜o pra ir mais r´pido,
                                                a              a
      mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou
                 e o
   2  Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1
                              a
      diff e est´ no meio de um algoritmo complexo
               a
   3  Finge que n˜o escutou nada
                  a
   4  Desliga o monitor e reza pra que ningu´m mais mexa no
                                              e
      computador
   5  Salva a sess˜o e continua da onde parou quando quiser
                  a



Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   18 / 29
Sessions


  Sempre que se abre o vim, se inicia uma nova sess˜o. E nela s˜o gravados:
                                                   a           a
          Hit´rico de comandos
             o
          Hist´ricos de undos
              o
          Arquivos abertos em buffers
          Arquivos abertos em abas
          Mapeamento de teclas
          Abreviaturas. . .

  Como usar?
  :mksession sessions/algoritmo X.vim
  $ vim -S sessions/algoritmo X.vim



Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   19 / 29
Macros




  Macro
          Macro ´ um conjunto de comandos que podem ser executados
                e
          automaticamente com uma finalidade.
          Geralmente s˜o usadas para tarefas repetitivas e que seguem um
                      a
          padr˜o.
              a
          Macros muito utilizadas podem ser carregadas automaticamente pelo
          .vimrc




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   20 / 29
Pulos



                  gg Primeira linha do arquivo




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a
                      ´
                    $ Ultimo caracter n˜o nulo
                                       a




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a
                      ´
                    $ Ultimo caracter n˜o nulo
                                       a
                    b Primeiro caracter da palavra acima do cursor




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a
                      ´
                    $ Ultimo caracter n˜o nulo
                                       a
                    b Primeiro caracter da palavra acima do cursor
                      ´
                    e Ultima caracter da palavra acima do cursor




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a
                      ´
                    $ Ultimo caracter n˜o nulo
                                       a
                    b Primeiro caracter da palavra acima do cursor
                      ´
                    e Ultima caracter da palavra acima do cursor
                   fx Primeira incidˆncia depois do cursor de x na linha
                                    e




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos



                  gg Primeira linha do arquivo
                     ´
                   G Ultima do arquivo
                    ˆ Primeiro caracter n˜o nulo
                                         a
                      ´
                    $ Ultimo caracter n˜o nulo
                                       a
                    b Primeiro caracter da palavra acima do cursor
                      ´
                    e Ultima caracter da palavra acima do cursor
                   fx Primeira incidˆncia depois do cursor de x na linha
                                    e
                  Fx Primeira incidˆncia anterior ao cursor de x na linha
                                   e




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   21 / 29
Pulos por Marcas




  Quando usar?
          Quando se ´ dif´ encontrar algum trecho espec´
                    e ıcil                             ıfico do arquivo
          Quando se precisa apenas um trecho de v´rios arquivos pra se
                                                 a
          escrever um outro
          Quando o arquivo ´ muito longo e precisa ser scrollado
                           e
          <Insira aqui a sua utilidade>




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   22 / 29
Pulos por Marcas

  Como usar?
                 ma Marca a letra a neste ponto.
                        Marca a linha cujo cursor est´ em cima.
                                                     a
                        Pode-se utilizar qualquer uma das 26 letras.
                        S˜o 26 letras por arquivo aberto.
                         a
                        Devem ser em min´sculas.
                                           u
                mA Marca a letra A neste ponto.
                       Marca a linha cujo cursor est´ em cima.
                                                    a
                       Pode-se utiilziar qualquer uma das 26 letras.
                       S˜o 26 letras por sess˜o.
                        a                     a
                       Devem ser em min´sculas.
                                           u
                       S˜o vis´
                        a     ıveis de qualquer arquivo
                   ’a Pula para a marca a (mesmo arquivo)
                  ’A Pula para a marca A (mesma sess˜o)
                                                    a

Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   23 / 29
Abrevia¸oes
        c˜


          Corrigir frequˆntes erros de digita¸˜o
                        e                    ca
          Corre¸˜o gramatical
               ca
          Facilitar escrita de textos muitos longos
          Podem variar de acordo com tipo do arquivo (.txt, .java, .c)
          Exemplos:
                    pq         porque
             tchelinux         Tche Linux - Rio Grande Do Sul
               forloop         for ($i = 0; $i <count($array); $i++) {}
                  :Wq          :wq
                    :Q         :q




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   24 / 29
Abrevia¸oes
        c˜



  Como usar?
          :iabbr pq porque
          :iabbr tchelinux Tche Linux - Rio Grande Do Sul
          :abbr forloop for ($i = 0; $i <count($array); $i++) {}
          :cabbr Wq wq
          :cabbr Q q
          :cabbr trim s/ˆs+|s+$//g




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   25 / 29
Templates

  Funcionalidade
  Permite que, ao abrir um novo arquivo, o arquivo tenha um template
  padr˜o
      a
          Acelerando o desenvolvimento
          Certificando-se de que n˜o ser´ esquecido de nada
                                 a     a
          Menos erros de digita¸˜o
                               ca
          Evita o racioc´ e a memoriza¸˜o sobre coisas desnecess´rias
                        ınio          ca                        a
          Padroniza documentos

  Utilidade
          Criar template para uma extens˜o de arquivo
                                        a
          Criar template para um arquivo que contenha uma certa palavra
          Criar template para um arquivo que esteja dentro de um certo
          diret´rio
               o
Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   26 / 29
Exemplos

      1   Criar o arquivo bash.template com o template desejado
      2   Colocar no .vimrc o c´digo para carregar o template para todos os
                                o
          arquivos com extens˜o .sh
                              a
      3   Sentir a magia

  bash.template
  #!/bin/bash

  .vimrc
  autocmd BufNewFile *.sh 0r bash.template

  Shell
  $ vim teste.sh

Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   27 / 29
Plugins



          NERDTree
          FuzzyFinder
          SnipMate
          PotWiki
          Taglist
          MiniBufExpl
          MatchIt
          Mark
          VimOutliner




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade   November 13, 2009   28 / 29
D´vidas
  u




                                          D´vidas?
                                           u
                                                                        Agradecimento especial Emanuel Zabka




Gustavo Dutra (http://gustavodutra.com)   VIM-de a mim, Produtividade           November 13, 2009      29 / 29

Mais conteúdo relacionado

Destaque

jQuery - Introdução
jQuery - IntroduçãojQuery - Introdução
jQuery - IntroduçãoGustavo Dutra
 
Jquery - Introdução v0.1
Jquery - Introdução v0.1Jquery - Introdução v0.1
Jquery - Introdução v0.1Gustavo Dutra
 
External Data Access with jQuery
External Data Access with jQueryExternal Data Access with jQuery
External Data Access with jQueryDoncho Minkov
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The BasicsJeff Fox
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsStormpath
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Destaque (8)

jQuery - Introdução
jQuery - IntroduçãojQuery - Introdução
jQuery - Introdução
 
Jquery - Introdução v0.1
Jquery - Introdução v0.1Jquery - Introdução v0.1
Jquery - Introdução v0.1
 
External Data Access with jQuery
External Data Access with jQueryExternal Data Access with jQuery
External Data Access with jQuery
 
JSON: The Basics
JSON: The BasicsJSON: The Basics
JSON: The Basics
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
JSON and REST
JSON and RESTJSON and REST
JSON and REST
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Semelhante a VIM-de a mim, produtividade v0.1

ESLPE 2008 - Contribuindo com o GNOME
ESLPE 2008 - Contribuindo com o GNOMEESLPE 2008 - Contribuindo com o GNOME
ESLPE 2008 - Contribuindo com o GNOMEJorge Pereira
 
SACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareSACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareLuiz Nörnberg
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosCloves da Rocha
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interaçãoHumberto Cepep
 
Tunning da jvm dos comandos às configurações
Tunning da jvm  dos comandos às configuraçõesTunning da jvm  dos comandos às configurações
Tunning da jvm dos comandos às configuraçõesLuan Cestari
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - FragmentsMarcio Palheta
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoÁlvaro Justen
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Enterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolEnterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolDanilo Bardusco
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programaçãoClausia Antoneli
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0Danilo J. S. Bellini
 

Semelhante a VIM-de a mim, produtividade v0.1 (17)

Etapas da programação
Etapas da programaçãoEtapas da programação
Etapas da programação
 
ESLPE 2008 - Contribuindo com o GNOME
ESLPE 2008 - Contribuindo com o GNOMEESLPE 2008 - Contribuindo com o GNOME
ESLPE 2008 - Contribuindo com o GNOME
 
Scrum
ScrumScrum
Scrum
 
SACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareSACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de software
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
Tunning da jvm dos comandos às configurações
Tunning da jvm  dos comandos às configuraçõesTunning da jvm  dos comandos às configurações
Tunning da jvm dos comandos às configurações
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de Comando
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Enterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolEnterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer School
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programação
 
Apostila word out2004
Apostila word out2004Apostila word out2004
Apostila word out2004
 
Apostila word out2004
Apostila word out2004Apostila word out2004
Apostila word out2004
 
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
(2016-08-13) [Grupy-SP] Plugin pytest-doctest-custom v1.0.0
 

VIM-de a mim, produtividade v0.1

  • 1. VIM-de a mim, Produtividade Gustavo Dutra http://gustavodutra.com November 13, 2009 Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 1 / 29
  • 2. Sum´rio a 1 Objetivo 2 Vim 3 Princ´ ıpios 4 Buscas Importˆncia a Buscando com eficiˆncia e 5 Opera¸˜es em massa co Exemplos 6 Sessions 7 Macros 8 Pulos 9 Abrevia¸˜es co 10 Templates Exemplos 11 Plugins 12 D´vidas u Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 2 / 29
  • 3. Objetivo Propor algumas pr´ticas e repensar nossas a¸˜es a fim de torn´-las mais a co a eficazes e que consumam menos tempo e esfor¸o utilizando o Vim como c editor de texto. Para isto, trago 3 princ´ ıpios a serem seguidos e algumas solu¸˜es para os problemas que, pelo menos para mim, eram corriqueiros. co Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 3 / 29
  • 4. Vim O Vim ´ um editor de texto e n˜o, necessariamente, um editor de e a c´digo-fonte. Pode-se editar f´cil e agilmente qualquer tipo de texto. o a Posts de blogs E-mails Textos para wiki, f´runs, etc o Posts de twitter Criar PDF’s Criar apresenta¸˜es co Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 4 / 29
  • 5. Princ´ ıpios S˜o 3 os princ´ a ıpios para aumentar a produtividade, levando em conta a vontade e a motiva¸˜o para ser produtivo: ca Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 5 / 29
  • 6. Princ´ ıpios S˜o 3 os princ´ a ıpios para aumentar a produtividade, levando em conta a vontade e a motiva¸˜o para ser produtivo: ca Detectando problemas Erros constantes de digita¸˜o ca Trabalho manual desgastante Repeti¸˜o de textos ca Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 5 / 29
  • 7. Princ´ ıpios S˜o 3 os princ´ a ıpios para aumentar a produtividade, levando em conta a vontade e a motiva¸˜o para ser produtivo: ca Detectando problemas Erros constantes de digita¸˜o ca Trabalho manual desgastante Repeti¸˜o de textos ca Procurando solu¸˜es co Ler a documenta¸˜o ca Procurar por plugins Procurar por dicas em blogs Criar um script em alguma linguagem Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 5 / 29
  • 8. Princ´ ıpios S˜o 3 os princ´ a ıpios para aumentar a produtividade, levando em conta a vontade e a motiva¸˜o para ser produtivo: ca Detectando problemas Erros constantes de digita¸˜o ca Trabalho manual desgastante Repeti¸˜o de textos ca Procurando solu¸˜es co Ler a documenta¸˜o ca Procurar por plugins Procurar por dicas em blogs Criar um script em alguma linguagem Criando h´bitos a Refazer utilizando a solu¸˜o ca Brincar com arquivos de testes Colar postit’s no monitor Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 5 / 29
  • 9. Buscas - Importˆncia a Certeza de encontrar todas as incidˆncias e Ficam visualmente destacadas (com :set hlsearch) Testar substitui¸˜es co Verificar a ortografia atr´s de erros de digita¸˜o a ca Encontrar vari´veis ou fun¸˜es n˜o utilizadas, s´ declaradas a co a o Encontrar rapidamente algum termo Verificar a existˆncia de algum termo e Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 6 / 29
  • 10. Buscando com eficiˆncia e /termo Busca pela incidˆncia de termo nos arquivos abertos e :vimgrep Abre os arquivos com a incidˆncia do termo na Quickfix List e :vimgrepadd Adiciona novos arquivos e incidˆncias a Quickfix List e :grep Executa um comando externo e abre os arquivos resultados (set grepprg) :!grep Apenas mostra o output do comando externo Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 7 / 29
  • 11. /termo Exemplos /texto /<casa< /$var /public void static Main(String[] args) /([0-9]+)texto1 Navega¸˜o ca n Avan¸a para a pr´xima incidˆncia c o e N Volta para a incidˆncia anterior e zz Centraliza a linha atual na tela Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 8 / 29
  • 12. :vimgrep :help :vimgrep :vim[grep][!] /{pattern}/[g][j] {files} Busca incidˆncias de pattern nos files listados. e pattern pode ser uma express˜o regular ou n˜o a a A exclama¸˜o (!) ignora as altera¸˜es j´ feita no arquivo atual ca co a g procura por todas as incidˆncias, n˜o s´ a primeira, em cada arquivo e a o j pula para o primeiro resultado ao executar o comando files podem conter wildcards, como *, ? e ** Os resultados s˜o abertos na quickfix list a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 9 / 29
  • 13. :vimgrep Exemplos :vimgrep! /$var/ arquivo.pl :vimgrep /texto/ *.rb :vimgrep /cTeXtO/ *.py dir/*.py :vimgrep /minhaFuncao/g **/*.c :vimgrep /<([ˆ ]+)[ˆ>]*>.+</1>/ index.html Navegando na Quickfix List :copen Abre a Quickfix List :cnext Posiciona o cursor sobre a pr´xima incidˆncia o e :cprevious Posiciona o cursor sobre a incidˆncia anterior e :cclose Fecha a Quickfix List Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 10 / 29
  • 14. :vimgrep Figure: :vimgrep /:q¿/g *tex Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 11 / 29
  • 15. :vimgrep Figure: Resultado Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 12 / 29
  • 16. :vimgrep Figure: :copen Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 13 / 29
  • 17. :vimgrep Figure: :cnext Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 14 / 29
  • 18. Opera¸oes em massa c˜ Comandos :bufdo cmd Executa um comando em todos os buffers abertos (:e) :bfirst :cmd :bnext :cmd ... :tabdo cmd Executa um comandos em todas as abas abertas (:tabnew) :tabfirst :cmd :tabnext :cmd ... Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 15 / 29
  • 19. Opera¸oes em massa c˜ Comandos :windo cmd Executa um comandos em todas as janelas abertas (:[v]split) CTRL-w t :cmd CTRL-w w :cmd ... Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 16 / 29
  • 20. Exemplos :bufdo :%s/$variavel velha/$variavel nova/g :bufdo :%g/ˆ$/d :bufdo :%g/ˆ#/d :tabdo :set fileencoding=utf-8 |:w :bufdo :0r header.file :windo :syntax on |:set syntax=tex Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 17 / 29
  • 21. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 22. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Respostas: 1 Desliga o computador pressionando o bot˜o pra ir mais r´pido, a a mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou e o Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 23. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Respostas: 1 Desliga o computador pressionando o bot˜o pra ir mais r´pido, a a mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou e o 2 Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1 a diff e est´ no meio de um algoritmo complexo a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 24. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Respostas: 1 Desliga o computador pressionando o bot˜o pra ir mais r´pido, a a mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou e o 2 Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1 a diff e est´ no meio de um algoritmo complexo a 3 Finge que n˜o escutou nada a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 25. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Respostas: 1 Desliga o computador pressionando o bot˜o pra ir mais r´pido, a a mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou e o 2 Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1 a diff e est´ no meio de um algoritmo complexo a 3 Finge que n˜o escutou nada a 4 Desliga o monitor e reza pra que ningu´m mais mexa no e computador Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 26. Sessions Imagine que vocˆ est´ em casa programando. Chega sua namorada e diz: e a ”amor, desliga esse computador e vamos pro quarto”. O que fazer? Respostas: 1 Desliga o computador pressionando o bot˜o pra ir mais r´pido, a a mais tarde ´ s´ reabrir os arquivos e lembrar de onde parou e o 2 Diz pra ela que agora n˜o pode, pois tem 10 arquivos abertos, 1 a diff e est´ no meio de um algoritmo complexo a 3 Finge que n˜o escutou nada a 4 Desliga o monitor e reza pra que ningu´m mais mexa no e computador 5 Salva a sess˜o e continua da onde parou quando quiser a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 18 / 29
  • 27. Sessions Sempre que se abre o vim, se inicia uma nova sess˜o. E nela s˜o gravados: a a Hit´rico de comandos o Hist´ricos de undos o Arquivos abertos em buffers Arquivos abertos em abas Mapeamento de teclas Abreviaturas. . . Como usar? :mksession sessions/algoritmo X.vim $ vim -S sessions/algoritmo X.vim Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 19 / 29
  • 28. Macros Macro Macro ´ um conjunto de comandos que podem ser executados e automaticamente com uma finalidade. Geralmente s˜o usadas para tarefas repetitivas e que seguem um a padr˜o. a Macros muito utilizadas podem ser carregadas automaticamente pelo .vimrc Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 20 / 29
  • 29. Pulos gg Primeira linha do arquivo Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 30. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 31. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 32. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a ´ $ Ultimo caracter n˜o nulo a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 33. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a ´ $ Ultimo caracter n˜o nulo a b Primeiro caracter da palavra acima do cursor Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 34. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a ´ $ Ultimo caracter n˜o nulo a b Primeiro caracter da palavra acima do cursor ´ e Ultima caracter da palavra acima do cursor Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 35. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a ´ $ Ultimo caracter n˜o nulo a b Primeiro caracter da palavra acima do cursor ´ e Ultima caracter da palavra acima do cursor fx Primeira incidˆncia depois do cursor de x na linha e Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 36. Pulos gg Primeira linha do arquivo ´ G Ultima do arquivo ˆ Primeiro caracter n˜o nulo a ´ $ Ultimo caracter n˜o nulo a b Primeiro caracter da palavra acima do cursor ´ e Ultima caracter da palavra acima do cursor fx Primeira incidˆncia depois do cursor de x na linha e Fx Primeira incidˆncia anterior ao cursor de x na linha e Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  • 37. Pulos por Marcas Quando usar? Quando se ´ dif´ encontrar algum trecho espec´ e ıcil ıfico do arquivo Quando se precisa apenas um trecho de v´rios arquivos pra se a escrever um outro Quando o arquivo ´ muito longo e precisa ser scrollado e <Insira aqui a sua utilidade> Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 22 / 29
  • 38. Pulos por Marcas Como usar? ma Marca a letra a neste ponto. Marca a linha cujo cursor est´ em cima. a Pode-se utilizar qualquer uma das 26 letras. S˜o 26 letras por arquivo aberto. a Devem ser em min´sculas. u mA Marca a letra A neste ponto. Marca a linha cujo cursor est´ em cima. a Pode-se utiilziar qualquer uma das 26 letras. S˜o 26 letras por sess˜o. a a Devem ser em min´sculas. u S˜o vis´ a ıveis de qualquer arquivo ’a Pula para a marca a (mesmo arquivo) ’A Pula para a marca A (mesma sess˜o) a Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 23 / 29
  • 39. Abrevia¸oes c˜ Corrigir frequˆntes erros de digita¸˜o e ca Corre¸˜o gramatical ca Facilitar escrita de textos muitos longos Podem variar de acordo com tipo do arquivo (.txt, .java, .c) Exemplos: pq porque tchelinux Tche Linux - Rio Grande Do Sul forloop for ($i = 0; $i <count($array); $i++) {} :Wq :wq :Q :q Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 24 / 29
  • 40. Abrevia¸oes c˜ Como usar? :iabbr pq porque :iabbr tchelinux Tche Linux - Rio Grande Do Sul :abbr forloop for ($i = 0; $i <count($array); $i++) {} :cabbr Wq wq :cabbr Q q :cabbr trim s/ˆs+|s+$//g Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 25 / 29
  • 41. Templates Funcionalidade Permite que, ao abrir um novo arquivo, o arquivo tenha um template padr˜o a Acelerando o desenvolvimento Certificando-se de que n˜o ser´ esquecido de nada a a Menos erros de digita¸˜o ca Evita o racioc´ e a memoriza¸˜o sobre coisas desnecess´rias ınio ca a Padroniza documentos Utilidade Criar template para uma extens˜o de arquivo a Criar template para um arquivo que contenha uma certa palavra Criar template para um arquivo que esteja dentro de um certo diret´rio o Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 26 / 29
  • 42. Exemplos 1 Criar o arquivo bash.template com o template desejado 2 Colocar no .vimrc o c´digo para carregar o template para todos os o arquivos com extens˜o .sh a 3 Sentir a magia bash.template #!/bin/bash .vimrc autocmd BufNewFile *.sh 0r bash.template Shell $ vim teste.sh Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 27 / 29
  • 43. Plugins NERDTree FuzzyFinder SnipMate PotWiki Taglist MiniBufExpl MatchIt Mark VimOutliner Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 28 / 29
  • 44. D´vidas u D´vidas? u Agradecimento especial Emanuel Zabka Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 29 / 29