The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2021-06-07
Desenvolvimento de software

Desenvolvimento Rails com TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

Há alguns anos, estava a fazer um churrasco com alguns dos meus amigos, todos programadores de Java. Não sei bem como surgiu o assunto, mas começámos a falar dos nossos ambientes de programação. Disse-lhes que fazia todo o meu desenvolvimento usando Vim e terminais. Isso deu origem a algumas piadas e perguntas engraçadas, como se eu ainda usava cartões perfurados 🙂

Desde então, experimentei alguns IDEs "reais", mas sempre voltei ao Vim e terminais porque é um método muito rápido, tem todas as ferramentas de que preciso e simplesmente gosto de trabalhar no modo de texto.

Aqui estão alguns pormenores sobre o meu fluxo de trabalho. Vale a pena mencionar que trabalho em Linux, mas pode configurá-lo em Mac ou Windows sem problemas.

Começo o meu dia de trabalho com a abertura de um terminal, cd ~/Projects/XYZ, e executo tmuxPor isso, vamos começar por aí.

TMUX

O que é TMUX? Como dizem os autores:

TMUX é um multiplexador de terminais. Permite-lhe alternar facilmente entre vários programas num terminal, separá-los (continuam a correr em segundo plano) e voltar a ligá-los a um terminal diferente.

Utilizo-o para alternar entre várias coisas num só terminal. Assim, num TMUX janela, tenho o Carris servidor em execução, no segundo tenho o meu Vim aberto, e sempre que preciso de fazer algo no terminal, como verificar rotas, executar migrações ou testes, basta abrir uma nova janela com CTRL-A C e fazer a coisa.

Eu não uso TMUX painéis, apenas janelas, e fazer muitas alternâncias (tenho a ligação CTRL + duplo A para alternar entre as últimas janelas).

Outra caraterística muito conveniente do TMUX é que me permite encontrar e copiar texto de um terminal sem utilizar o rato.

Vim

É a parte principal do meu fluxo de trabalho. Não vou entrar em pormenores sobre o que VIM é e como é diferente de outros editores. Existem muitos artigos e vídeos excelentes sobre o assunto. Em poucas palavras, Vim é um editor modal. Tem dois modos, o modo de inserção e o modo normal. O modo de inserção serve para escrever texto num documento e o modo normal serve para efetuar diferentes operações no documento, como mover o cursor, apagar fragmentos de texto, alterá-lo, etc. Parece estranho, mas passado algum tempo parece muito natural e é muito difícil voltar ao seu editor normal.

O que eu gostaria de vos mostrar é a forma como combino Vim com outras ferramentas para obter tudo o que preciso como programador Web.

Plugins

Não sou fã de plugins pesados Vim por isso estou a utilizar apenas algumas. Aqui está a lista:

NERDtree - é um explorador de ficheiros. Permite-lhe realizar facilmente algumas operações básicas do sistema de ficheiros, como mover ficheiros, renomear, criar novos ficheiros e muitas outras,

vim-endwise - Eu sou um Rubi por isso utilizo-o para adicionar fim após se, fazer, defesa, e várias outras palavras-chave,

vim-rails - é um Carris plugin de potência. Conhece a estrutura de um Aplicação Rails. Quer verificar o parcial sob o seu cursor? Basta premir gf e abre-o na janela atual. Tem muitas outras opções, mas esta é a que utilizo mais frequentemente,

vim-surround - excelente plugin que facilita muito o trabalho com a envolvente. Com ele, pode alterar a envolvente do texto de () para [] com apenas alguns toques no teclado,

vim-repetir - complementar ao Vim-surround. Permite uma mudança de ambiente repetitiva com . (repetir a última alteração no Vim),

vimwiki- a minha maneira de tomar notas,

fzf.vim+ fzf - a parte central da minha desenvolvimento web fluxo de trabalho.

faixa de cooperação

Fzf + Ripgrep

Estas são as ferramentas que definem a forma como faço a minha programação. Apercebi-me que, normalmente, quando estou a fazer algumas tarefas de programação, passo a maior parte do meu tempo a descobrir como é que as coisas funcionam. Para o fazer, preciso de verificar rapidamente diferentes partes da base de código, definições de métodos, classes e outras coisas.

Fzf é um filtro Unix interativo para a linha de comandos que pode ser utilizado com quaisquer listas (ficheiros, histórico de comandos, commits git, listas de processos); por outras palavras, é um fuzzy finder.

Ripgrep é uma alternativa ao grep, mas é o mais rápido.

Uma vez combinados, estes dois elementos permitem-me encontrar rapidamente tudo o que pretendo na minha projeto.
Tenho duas definições no meu Vim ficheiro de configuração para me ajudar com isto:

nnoremap  :Ficheiros
nnoremap  :Rg

A primeira permite-me encontrar rapidamente os ficheiros corretos utilizando a procura difusa nos caminhos dos ficheiros (CTRL-P). O segundo executa o fuzzy finder em todos os caminhos e conteúdos dos ficheiros no meu projeto utilizando Ripgrep (CTRL-F).

Então, digamos que eu queira encontrar a migração onde eu adicionei uma coluna ao utilizadores mesa. Carrego em CTRL-F e escrevo algo como adcolusnam e corresponderá a add_column :utilizadores, :nome, :string.

Quando procuro a definição de um método, costumo executar CTRL-F def nome_do_método.

É muito útil, pois procura através do caminho do ficheiro + conteúdo. É especialmente conveniente quando eu sei que o conteúdo que estou procurando está em uma parte específica do projeto. Por exemplo, quero encontrar onde actualizámos um nome de utilizador e lembro-me que está algures nos controladores. Carrego em CTRL-F nome da conexão para corresponder à linha app/controladores/controlador_de_utilizadores: @user.update(name: new_name).

Se conhece o seu projeto e a estrutura da base de código, pode facilmente construir consultas de pesquisa difusa para encontrar rapidamente quase tudo o que pretende.

Vídeo

Clique aqui para ver uma pequena gravação minha a brincar com a base de código do `discourse` (440k LOC no meu i5, 16GB desktop) e a mostrar como costumo mexer no projeto.

Resumo

Espero que tenha ficado interessado na minha configuração e tenha decidido dar Fzf nos seus esforços de codificação. Mudou realmente a forma como estou a utilizar o Vim como código editor.

Artigos relacionados

Fintech

5 exemplos da melhor utilização do Ruby

Já alguma vez pensou no que podemos fazer com Ruby? Bem, o céu é provavelmente o limite, mas temos todo o gosto em falar sobre alguns casos mais ou menos conhecidos...

The Codest
Pawel Muszynski Software Engineer
Desenvolvimento de software

Saiba mais sobre o Ruby on Rails com Pub/Sub

O Pub/Sub pode trazer muitos benefícios para o projeto - pode tornar o código limpo, dissociar serviços e torná-los facilmente escaláveis. Saiba mais sobre o Pub/Sub no seguinte artigo...

The Codest
Michal Pawlak Programador Ruby sénior
Desenvolvimento de software

Desenvolvimento de produtos: Python vs. Ruby

Python e Ruby são as linguagens de programação backend mais utilizadas. A Python é um pouco mais popular e tem uma aplicação mais alargada. No entanto, o Ruby também traz muitos benefícios e...

The Codest
Kamil Ferens Diretor de Crescimento

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese