SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
VIM Rocks! 
Autor: Magnun Leno
Quem Sou Eu? 
● Graduação: 
– Eng. Telecomunicações 
– Analise de Sistemas Orientado a Objetos 
● GNU/Linux: ~2002 
● Analista de Infraestrutura GNU/Linux 
● Programador FOSS: 
– Anarchy, USB Manager, Tiamat, C-CairoPlot... 
– Cairoplot, Web2py e Pelican 
● Passatempos: 
– http://mindbending.org 
– Hack 'n' Cast 
'
Objetivo da Palestra 
● Everybody hates VIM 
– Todo primeiro uso do VIM é traumático 
● i, ESC, :wq, :q! 
● Mostrar as possibilidades 
● Esclarecer designs 
● Competidor real 
● DIY “IDE”
O VIM é o seu Espelho
Mas... VIM? 
● Sim... por quê não? 
● Ele é onipresente 
● Ele não precisa de ambiente 
gráfico 
● É leve 
● É old school 
● Suporta inúmeras 
linguagens 
● Customizável 
● Bem documentado 
● Supera editores atuais
Vale o esforço? 
● Editar texto é uma tarefa comum 
– Programador 
– Analista de sistemas 
– Usuário comum 
● Conhecer sua ferramenta de trabalho aumenta a 
produtividade 
● Por que o VIM é tão diferente?
A log time ago in a galaxy 
far far away...
Breve História 
● Existiam apenas computadores 
"centrais" 
● Eram utilizados "terminais 
burros" 
● Não era comum o uso de 
"monitores" 
● Os terminais eram lentos! 
● O "padrão" de comunicação era 
a TTY: 
– Teletypewriter ou 
Teleprinter
Breve História 
● 1971: Ken Thompson cria "ed", um 
line editor 
– Implementa o conceito de modos 
● 1976: Bill Joy cria "ex", outro line 
editor 
– Implementa os comandos mais 
conhecidos do vi 
● 1976: Bill Joy implementa o 
comando :visual (:vi) 
● 1979: a situação se inverte... 
● 1991: Bram Moolenaar cria o VIM
Entendendo o VIM 
● Principais modos: 
– Comando 
– Inserção 
– Normal 
● Mas... 
– Normal, Visual, Select, Insert, 
Command-line, Ex, Operator-pending, 
Replace, Virtual 
Replace, Insert Normal, Insert 
Visual, Insert Select 
● HJKL & ESC 
● Keep your damn hands in the 
Home Row
Keyboard Cheatsheet
Conceitos Úteis 
● Navegação & Troca de modos 
● Text Objects 
● Marks 
● Registers 
● Integração com Shell 
● Jumps 
● Tags (ctags) 
● Autocompletar 
● Mappings 
● Spell Check 
● Macros
Let's Rock!
Vanilla VIM 
● Setup básico: 
set nocompatible " Desativa compatibilidade com VI 
filetype plugin indent on " Ativa a auto indentação 
syntax on " Ativa Syntax Highlight 
set hlsearch incsearch smartcase " Melhora a busca 
set number " Ativa número de linha 
set ruler " Ativa indicador de posição 
set showcmd " Ativa indicador de comando em execução 
set showmatch " Ativa destaque de pares 
set cursorline " Destaca a linha atual 
set hidden " Desabilita o 'modo chato' dos buffers
Buffers 
● Abra novos arquivos com :e <fname> 
● Liste os buffers com :ls 
● Mude de buffer com :b1, :b2, :b3 
● Cycle: :bnext e :bprev 
● Crie atalhos: 
– nmap <c-tab> :bn<CR> 
– nmap <c-tab> :bp<CR> 
● Execuções batch!
Splits & Windows 
● Vertical/Horizontal: <c-w>v / <c-w>s 
● Abrir novos arquivos: :sp <fname> / :vs <fname> 
● Movimentação: <c-w>h, <c-w>j, <c-w>k e <c-w>l
Tabs 
● Nova: :Tabnew 
● Listagem: :Tabs 
● Tabs compartilham buffers 
● Criam “visões” específicas do seu código: 
– Model, view, controller 
– Bean, dao...
Folds 
● Metodos: 
– Manual, Indent, Expression, Marker, Syntax e Diff 
● Configurar: :set foldmethod=indent 
● Manipulação: 
– Toggle: za 
– Abrir/Fechar: zo / zc 
– Abrir Todas/Fechar Todas: zR / zM
Plugins
Antes de Qualquer Plugin 
● Utilize um gerenciador de plugins... 
– Vundle 
– Pathogen 
– NeoBundle
Airline (GitHub) 
● Adiciona um "status bar"; 
● Diversas informações de contexto
Emmet-vim (GitHub) 
● Expande a sintaxe Emmet para HTML & CSS:
UltiSnips (GitHub)
Syntastic (GitHub) 
● Syntax check on the fly
YouCompleteMe (GitHub)
The NERD Tree (GitHub)
TagBar (GitHub)
GitGutter (GitHub) 
● Provê símbolos e atalhos para adição de chunks 
ao Git
Colorizer (GitHub) 
● “Ilustra” a cor em no background
vCoolor (GitHub) 
● Provê um color picker utilizando ferramentas 
externas 
● Windows, GNU/Linux & Mac OS
Rainbow Parenthesis (GitHub) 
● Adiciona um highlight especial para parenteses, chaves e 
colchetes aninhados
Signature (GitHub) 
● Adiciona "visual marks" ao arquivo em edição
Diversos Outros 
● Fugitive 
● Surround 
● Matchit 
● DelimitMate 
● Ctrl-P 
● EasyMotion 
● E muitos outros...
Bonus Track! 
● Matrix 
● TeTrls 
● Sokoban 
● Rogue 
● Snake 
● HJKL 
● FlappyVird
Fontes de Aprendizado 
● Livros Gratuitos 
◾ A Bite of VIM 
◾ VIM Cookbook 
◾ VIM Book 
● Livros Pagos 
◾ Learing VI and VIM Editors 
◾ Hacking VIM 
◾ Pratical VIM 
● Vídeos 
◾ VIMCasts 
◾ Derek Wyatt's Videos 
● Sites: 
◾ VIM Ninjas 
◾ USE VIM 
◾ VIM Bits 
◾ VIM Awsome 
◾ TIL VIM 
◾ r/vim 
◾ r/vimplugins 
◾ r/vim_magic 
◾ VIM | Stack Overflow 
● .vimrc
Obrigado!
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldThiago Soares
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]Filipe Ximenes
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantPedro Fernandes Vieira
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na práticaNando Vieira
 
Introdução ao Python - FTEC
Introdução ao Python - FTECIntrodução ao Python - FTEC
Introdução ao Python - FTECDorneles Treméa
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Vim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelVim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelGilson Filho
 

Mais procurados (20)

Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na prática
 
Introdução ao Python - FTEC
Introdução ao Python - FTECIntrodução ao Python - FTEC
Introdução ao Python - FTEC
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Vim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelVim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexível
 

Semelhante a Vim Rocks!

Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteTchelinux
 
Rachinations
RachinationsRachinations
RachinationsFelipe
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Otávio Santana
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricksTales Andrade
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 
Horizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localHorizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localBruno Ferreira
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Marcelo Barros de Almeida
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Jorge Cardoso
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Luís Gustavo Martins
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com ElixirWeverton Timoteo
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com ElixirAmadeu Cavalcante
 

Semelhante a Vim Rocks! (20)

Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Rachinations
RachinationsRachinations
Rachinations
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Aula 9 - Introdução ao Python
Aula 9 - Introdução ao PythonAula 9 - Introdução ao Python
Aula 9 - Introdução ao Python
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Horizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localHorizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer local
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 

Vim Rocks!

  • 1. VIM Rocks! Autor: Magnun Leno
  • 2. Quem Sou Eu? ● Graduação: – Eng. Telecomunicações – Analise de Sistemas Orientado a Objetos ● GNU/Linux: ~2002 ● Analista de Infraestrutura GNU/Linux ● Programador FOSS: – Anarchy, USB Manager, Tiamat, C-CairoPlot... – Cairoplot, Web2py e Pelican ● Passatempos: – http://mindbending.org – Hack 'n' Cast '
  • 3. Objetivo da Palestra ● Everybody hates VIM – Todo primeiro uso do VIM é traumático ● i, ESC, :wq, :q! ● Mostrar as possibilidades ● Esclarecer designs ● Competidor real ● DIY “IDE”
  • 4. O VIM é o seu Espelho
  • 5. Mas... VIM? ● Sim... por quê não? ● Ele é onipresente ● Ele não precisa de ambiente gráfico ● É leve ● É old school ● Suporta inúmeras linguagens ● Customizável ● Bem documentado ● Supera editores atuais
  • 6. Vale o esforço? ● Editar texto é uma tarefa comum – Programador – Analista de sistemas – Usuário comum ● Conhecer sua ferramenta de trabalho aumenta a produtividade ● Por que o VIM é tão diferente?
  • 7. A log time ago in a galaxy far far away...
  • 8. Breve História ● Existiam apenas computadores "centrais" ● Eram utilizados "terminais burros" ● Não era comum o uso de "monitores" ● Os terminais eram lentos! ● O "padrão" de comunicação era a TTY: – Teletypewriter ou Teleprinter
  • 9. Breve História ● 1971: Ken Thompson cria "ed", um line editor – Implementa o conceito de modos ● 1976: Bill Joy cria "ex", outro line editor – Implementa os comandos mais conhecidos do vi ● 1976: Bill Joy implementa o comando :visual (:vi) ● 1979: a situação se inverte... ● 1991: Bram Moolenaar cria o VIM
  • 10. Entendendo o VIM ● Principais modos: – Comando – Inserção – Normal ● Mas... – Normal, Visual, Select, Insert, Command-line, Ex, Operator-pending, Replace, Virtual Replace, Insert Normal, Insert Visual, Insert Select ● HJKL & ESC ● Keep your damn hands in the Home Row
  • 12. Conceitos Úteis ● Navegação & Troca de modos ● Text Objects ● Marks ● Registers ● Integração com Shell ● Jumps ● Tags (ctags) ● Autocompletar ● Mappings ● Spell Check ● Macros
  • 14. Vanilla VIM ● Setup básico: set nocompatible " Desativa compatibilidade com VI filetype plugin indent on " Ativa a auto indentação syntax on " Ativa Syntax Highlight set hlsearch incsearch smartcase " Melhora a busca set number " Ativa número de linha set ruler " Ativa indicador de posição set showcmd " Ativa indicador de comando em execução set showmatch " Ativa destaque de pares set cursorline " Destaca a linha atual set hidden " Desabilita o 'modo chato' dos buffers
  • 15. Buffers ● Abra novos arquivos com :e <fname> ● Liste os buffers com :ls ● Mude de buffer com :b1, :b2, :b3 ● Cycle: :bnext e :bprev ● Crie atalhos: – nmap <c-tab> :bn<CR> – nmap <c-tab> :bp<CR> ● Execuções batch!
  • 16. Splits & Windows ● Vertical/Horizontal: <c-w>v / <c-w>s ● Abrir novos arquivos: :sp <fname> / :vs <fname> ● Movimentação: <c-w>h, <c-w>j, <c-w>k e <c-w>l
  • 17. Tabs ● Nova: :Tabnew ● Listagem: :Tabs ● Tabs compartilham buffers ● Criam “visões” específicas do seu código: – Model, view, controller – Bean, dao...
  • 18. Folds ● Metodos: – Manual, Indent, Expression, Marker, Syntax e Diff ● Configurar: :set foldmethod=indent ● Manipulação: – Toggle: za – Abrir/Fechar: zo / zc – Abrir Todas/Fechar Todas: zR / zM
  • 20. Antes de Qualquer Plugin ● Utilize um gerenciador de plugins... – Vundle – Pathogen – NeoBundle
  • 21. Airline (GitHub) ● Adiciona um "status bar"; ● Diversas informações de contexto
  • 22. Emmet-vim (GitHub) ● Expande a sintaxe Emmet para HTML & CSS:
  • 24. Syntastic (GitHub) ● Syntax check on the fly
  • 26. The NERD Tree (GitHub)
  • 28. GitGutter (GitHub) ● Provê símbolos e atalhos para adição de chunks ao Git
  • 29. Colorizer (GitHub) ● “Ilustra” a cor em no background
  • 30. vCoolor (GitHub) ● Provê um color picker utilizando ferramentas externas ● Windows, GNU/Linux & Mac OS
  • 31. Rainbow Parenthesis (GitHub) ● Adiciona um highlight especial para parenteses, chaves e colchetes aninhados
  • 32. Signature (GitHub) ● Adiciona "visual marks" ao arquivo em edição
  • 33. Diversos Outros ● Fugitive ● Surround ● Matchit ● DelimitMate ● Ctrl-P ● EasyMotion ● E muitos outros...
  • 34. Bonus Track! ● Matrix ● TeTrls ● Sokoban ● Rogue ● Snake ● HJKL ● FlappyVird
  • 35. Fontes de Aprendizado ● Livros Gratuitos ◾ A Bite of VIM ◾ VIM Cookbook ◾ VIM Book ● Livros Pagos ◾ Learing VI and VIM Editors ◾ Hacking VIM ◾ Pratical VIM ● Vídeos ◾ VIMCasts ◾ Derek Wyatt's Videos ● Sites: ◾ VIM Ninjas ◾ USE VIM ◾ VIM Bits ◾ VIM Awsome ◾ TIL VIM ◾ r/vim ◾ r/vimplugins ◾ r/vim_magic ◾ VIM | Stack Overflow ● .vimrc

Notas do Editor

  1. O editor ATOM não consegue gerenciar arquivos com mais de 2M.