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

Like this? Share it with your network

Share

Vim-de a mim, Produtividade - por Gustavo Dutra

on

  • 847 views

 

Statistics

Views

Total Views
847
Views on SlideShare
845
Embed Views
2

Actions

Likes
0
Downloads
12
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Vim-de a mim, Produtividade - por Gustavo Dutra Presentation 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