VIM-de a mim, produtividade v0.1

780 visualizações

Publicada em

Técnicas e comandos para ajudar no ganho de produtividade usando o editor Vim.

Uma versão alternativa se encontra em http://www.slideshare.net/bellthoven/vimde

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
780
No SlideShare
0
A partir de incorporações
0
Número de incorporações
14
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

VIM-de a mim, produtividade v0.1

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. :vimgrep Figure: :vimgrep /:q¿/g *tex Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 11 / 29
  15. 15. :vimgrep Figure: Resultado Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 12 / 29
  16. 16. :vimgrep Figure: :copen Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 13 / 29
  17. 17. :vimgrep Figure: :cnext Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 14 / 29
  18. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 29. Pulos gg Primeira linha do arquivo Gustavo Dutra (http://gustavodutra.com) VIM-de a mim, Produtividade November 13, 2009 21 / 29
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×