Estou usando o vim a 10 anos e não consigo migrar deste editor.
Durante os últimos anos parece que nada mudou e minha produtividade parece estável em termos de editor, mas sempre estou encontrando plugins legais e vou compartilhar meu setup básico com VIM.
Neste tópico não vou falar sobre como fazer o setup do editor e usar as funcionalidaes básicas. Vou apenas expor algumas das coisas que gosto pra caramba no meu setup e workflow do dia a dia.
Eu tenho um fork do dotvim do astrails que tem vários atalhos inspiradores que estou sempre tentando incluir no meu workflow. Esse set de plugins que fiz o fork foi uma dica do @nandosousafr que me apresentou logo que comecei a trabalhar na Resultados Digitais.
, como mapleader
No vim têm esse conceito de map keys com leader.
O leader funciona como um tecla mágica que têm um timeout esperando a próxima
tecla, se não acontecer ela é invalidada. Então se você digitar <esc>leader e
não seguir com o comando, logo seu <leader> é esquecido.
Lembrando que mapleader é uma variável do vim e por padrão é a a barra
invertida: \\.
Nesse caso ele usa , como leader. Então quando eu um mapeamento no vim:
map <Leader>f :call <SID>JumpToFile()<CR>
Isso quer dizer que quando eu estiver usando o editor e usar <esc>,f ele
vai chamar a função JumpToFile() que deve estar em algum plugin ou faz parte do vim.
Então se eu fizer um mapeamento:
map <Leader>rr :!ruby %<CR>
Quer dizer que quero rodar um script ruby com o arquivo atual que é
compilado em tempo real através da variável %.
Splits, multijanela
No final do vídeo anterior faço um split da tela horizontal e existem várias maneiras de fazer isso.
A gerência de janelas é data por <ctrl-w><disposition> onde <disposition>
pode ser s ou n para horizontal ou v para vertical. Use <ctrl>ww
para navegar entre as janelas do split. Também é possível clicar para focar em uma janela específica.
Eu me sinto muito confortável trabalhar e acompanhar o contexto de múltiplos arquivos de interesse.
No vídeo abaixo exploro algumas navegabilidades basicas entre arquivos em um projeto rails.
<esc>:Rmodelvai para os modelos<esc>:Runittestvai para os testes do modelo<esc>gfgo file: vai para arquivo/definição contextos diversos - até mesmo nas gems<esc>bfback file: volta para contexto anterior<esc>,fbusca palavra sobre o cursor dentro do diretório<esc>Aalterna entre model e teste<esc>ASdivide a tela horizontalmente entre model e teste<esc>AVdivide a tela verticalmente entre model e teste
E aí já pensou em dar uma chance para o VIM no seu workflow com Ruby e Rails?
Quais são os atalhos e conveniências que você vê nos outros editores que são parecidos com estes?
Você é um amante do sublime, atom, textmate? Deixe seu feedback!
Eu acredito que os editores são ferramentas chave para ter proudutividade no ambiente de desenvolvimento.
Eu uso o VIM para toda e qualquer edição que exige concentração e produtividade. Não apenas para programar :)
Abaixo fiz um live coding com ruby puro observando meus vícios de linguagem no blog: