• Like
Vim-de a mim, Produtividade - por Gustavo Dutra
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Vim-de a mim, Produtividade - por Gustavo Dutra

  • 572 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
572
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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