Porque você deve aprender VIm hoje.

2,136 views

Published on

Palestra na Hack Design Conf sobre VIm

Published in: Technology
4 Comments
10 Likes
Statistics
Notes
No Downloads
Views
Total views
2,136
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
36
Comments
4
Likes
10
Embeds 0
No embeds

No notes for slide

Porque você deve aprender VIm hoje.

  1. 1. PORQUE VOCÊ DEVE APRENDER VIM HOJE. PEDROFRANCESCHI pedrohfranceschi@gmail.com pedrofranceschi.com @pedroh96
  2. 2. IDE x Editores de texto
  3. 3. “Write programs that do one thing and do it well.” - Filosofia UNIX
  4. 4. Background...
  5. 5. Background... TextMate (3 anos)
  6. 6. Background...
  7. 7. Background... Emacs (~6 meses)
  8. 8. E M A C S
  9. 9. E scape M A C S
  10. 10. E scape M eta A C S
  11. 11. E scape M eta A lt C S
  12. 12. E scape M eta A lt C ontrol S
  13. 13. E scape M eta A lt C ontrol S hift
  14. 14. Emacs x Vim Editor war!!
  15. 15. “EMACS Makes Any Computer Slow.”
  16. 16. “Emacs é um ótimo sistema operacional. Só falta um editor de texto decente.”
  17. 17. Dando uma chance ao Vim...
  18. 18. Vim = Vi(Improved)
  19. 19. Vim = Vi(Improved)
  20. 20. Vim = Vi(Improved) •Vim phylosophy
  21. 21. Vim = Vi(Improved) •Vim phylosophy •Download e uso
  22. 22. Vim = Vi(Improved) •Vim phylosophy •Download e uso •.vimrc
  23. 23. Vim = Vi(Improved) •Vim phylosophy •Download e uso •.vimrc •Colorschemes (temas) e plugins
  24. 24. Vim = Vi(Improved) •Vim phylosophy •Download e uso •.vimrc •Colorschemes (temas) e plugins •Demonstração
  25. 25. Vim phylosophy
  26. 26. Esqueça tudo que você sabe sobre qualquer outro editor de texto.
  27. 27. Vim = eficiência
  28. 28. Normal mode Insert mode
  29. 29. hjkl
  30. 30. 2 keystrokes para ir para qualquer lugar do arquivo.
  31. 31. 2 keystrokes para ir para qualquer lugar do arquivo. (sério)
  32. 32. operator + movement + argument change, delete, yank (copy), visual, etc word, back word, end of word, find, ‘till, etc (apenas quando o movement exige)
  33. 33. Exemplos
  34. 34. Exemplos w - avança uma palavra
  35. 35. Exemplos w - avança uma palavra 3w - avança 3 palavras
  36. 36. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço
  37. 37. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra
  38. 38. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço
  39. 39. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra
  40. 40. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra dW - deleta até o próximo espaço
  41. 41. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra dW - deleta até o próximo espaço ci) - deleta dentro dos parênteses e vai para o insert mode.
  42. 42. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra dW - deleta até o próximo espaço ci) - deleta dentro dos parênteses e vai para o insert mode. da) - deleta os parênteses e tudo nele
  43. 43. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra dW - deleta até o próximo espaço ci) - deleta dentro dos parênteses e vai para o insert mode. da) - deleta os parênteses e tudo nele f@ - vai para a próxima ocorrência de “@”
  44. 44. Exemplos w - avança uma palavra 3w - avança 3 palavras W - avança até o próximo espaço b - volta uma palavra B - volta até o último espaço dw - deleta uma palavra dW - deleta até o próximo espaço ci) - deleta dentro dos parênteses e vai para o insert mode. da) - deleta os parênteses e tudo nele f@ - vai para a próxima ocorrência de “@” df@ - deleta tudo até a próxima ocorrência de “@”
  45. 45. Exemplos
  46. 46. Exemplos yw - copia a palavra atual para o clipboard
  47. 47. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard
  48. 48. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard
  49. 49. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo
  50. 50. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca
  51. 51. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca
  52. 52. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha
  53. 53. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha
  54. 54. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha Control + u - sobe metade da página
  55. 55. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha Control + u - sobe metade da página Control + d - desce metade da página
  56. 56. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha Control + u - sobe metade da página Control + d - desce metade da página 17G - vai para a linha 17 do arquivo
  57. 57. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha Control + u - sobe metade da página Control + d - desce metade da página 17G - vai para a linha 17 do arquivo gg - vai para o início do arquivo
  58. 58. Exemplos yw - copia a palavra atual para o clipboard yi” - copia tudo dentro das áspas para o clipboard p - cola o que está no clipboard /var - busca por “var” no arquivo n - vai para a próxima ocorrência da busca N - vai para a última ocorrência da busca 0 - vai para o início da linha $ - vai para o final da linha Control + u - sobe metade da página Control + d - desce metade da página 17G - vai para a linha 17 do arquivo gg - vai para o início do arquivo G - vai para o final do arquivo
  59. 59. Download e instalação
  60. 60. O vim de console já vem instalado na grande maioria dos Linux/UNIX...
  61. 61. O vim de console já vem instalado na grande maioria dos Linux/UNIX... ... mas existem versões aprimoradas para ambientes gráficos
  62. 62. MacVim: versão otimizada para rodar no Mac OS X (com suporte a janelas, mouse, abas, etc) http://code.google.com/p/macvim/ gVim: versão oficial do Vim com suporte a janelas para Windows e Linux (Ubuntu, etc) http://www.vim.org/download.php
  63. 63. .vimrc
  64. 64. O .vimrc é a mágica por trás da customização e da otimização do uso do vim.
  65. 65. .vimrc (vimfiles)
  66. 66. .vimrc (vimfiles) • É o arquivo de configuração do Vim.
  67. 67. .vimrc (vimfiles) • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc.
  68. 68. .vimrc (vimfiles) • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema)
  69. 69. .vimrc (vimfiles) • • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema) Lista (Vundle) e configuração de plugins
  70. 70. .vimrc (vimfiles) • • • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema) Lista (Vundle) e configuração de plugins Fica localizado em ~/.vimrc
  71. 71. .vimrc (vimfiles) • • • • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema) Lista (Vundle) e configuração de plugins Fica localizado em ~/.vimrc Versões do Vim com suporte a modo gráfico (MacVim, gVim, etc) usam também o ~/.gvimrc
  72. 72. .vimrc (vimfiles) • • • • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema) Lista (Vundle) e configuração de plugins Fica localizado em ~/.vimrc Versões do Vim com suporte a modo gráfico (MacVim, gVim, etc) usam também o ~/.gvimrc • A comunidade compartilha seus vimfiles no Github.
  73. 73. .vimrc (vimfiles) • • • • • • É o arquivo de configuração do Vim. Definição de preferências, atalhos, macros, etc. Definição do colorscheme (tema) Lista (Vundle) e configuração de plugins Fica localizado em ~/.vimrc Versões do Vim com suporte a modo gráfico (MacVim, gVim, etc) usam também o ~/.gvimrc • • A comunidade compartilha seus vimfiles no Github. DICA: comece o seu .vimrc do zero, não o copie, apenas inspire-se no dos outros usuários
  74. 74. Meus vimfiles https://github.com/pedrofranceschi/vimfiles
  75. 75. Colorschemes e plugins
  76. 76. Um bom colorscheme torna o uso do Vim agradável aos olhos.
  77. 77. Vim padrão (sem colorscheme)
  78. 78. Colorscheme badwolf
  79. 79. Colorscheme molokai
  80. 80. Colorscheme solarized
  81. 81. DICA: use o Powerline. https://github.com/Lokaltog/powerline
  82. 82. Plugins permitem você fazer literalmente o que quiser com o Vim.
  83. 83. Instalação de plugins Pathogen (coloque cada plugin em uma pasta e eles serão instalados)
  84. 84. Instalação de plugins Pathogen (coloque cada plugin em uma pasta e eles serão instalados) ... ou ... Vundle (defina no seu .vimrc a lista de plugins e eles serão instalados do Github
  85. 85. Vundle no .vimrc setup do Vundle https://github.com/sjl/badwolf setup do Vundle
  86. 86. Bons plugins
  87. 87. Bons plugins CtrlP - busca de arquivos incrivelmente rápida
  88. 88. Bons plugins CtrlP - busca de arquivos incrivelmente rápida Powerline - linha que mostra o status do Vim
  89. 89. Bons plugins CtrlP - busca de arquivos incrivelmente rápida Powerline - linha que mostra o status do Vim YankRing - navegue pelo histórico de yanks (cópias)
  90. 90. Bons plugins CtrlP - busca de arquivos incrivelmente rápida Powerline - linha que mostra o status do Vim YankRing - navegue pelo histórico de yanks (cópias) ack.vim - busca no projeto (pasta) inteiro
  91. 91. Bons plugins CtrlP - busca de arquivos incrivelmente rápida Powerline - linha que mostra o status do Vim YankRing - navegue pelo histórico de yanks (cópias) ack.vim - busca no projeto (pasta) inteiro Surround - manipulação de parênteses, áspas, etc
  92. 92. Bons plugins CtrlP - busca de arquivos incrivelmente rápida Powerline - linha que mostra o status do Vim YankRing - navegue pelo histórico de yanks (cópias) ack.vim - busca no projeto (pasta) inteiro Surround - manipulação de parênteses, áspas, etc Fugitive - o melhor plugin de git de todos os tempos
  93. 93. Demonstração
  94. 94. Conclusões...
  95. 95. “Vim é um gosto adquirido. Você o odeia até imergir nele. Pouca gente consegue, a maioria simplesmente o odeia.” - @AlexandreTorres
  96. 96. Vim é doloroso de aprender, mas quem se acostuma não volta atrás.
  97. 97. DICA: $ vimtutor
  98. 98. DICA: vimgolf.com
  99. 99. Não tenha medo de tentar editores e ferramentas novas.
  100. 100. OBRIGADO! :) PEDROFRANCESCHI pedrohfranceschi@gmail.com pedrofranceschi.com @pedroh96
  101. 101. PORQUE VOCÊ DEVE APRENDER VIM HOJE. PEDROFRANCESCHI pedrohfranceschi@gmail.com pedrofranceschi.com @pedroh96

×