The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2021-06-07
Desarrollo de software

Desarrollo Rails con TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

Hace unos años, estaba charlando con unos amigos, todos desarrolladores de Java. No estoy seguro de cómo surgió el tema, pero empezamos a hablar de nuestros entornos de codificación. Les conté que todo mi desarrollo lo hago usando Vim y terminales. Eso desencadenó algunas bromas y preguntas divertidas, como si todavía uso tarjetas perforadas 🙂 .

Desde entonces, he probado algunos IDE "de verdad", pero siempre he vuelto a Vim y terminales ya que es un método muy rápido, tiene todas las herramientas que necesito y simplemente me gusta trabajar en modo texto.

Aquí tienes algunos detalles sobre mi flujo de trabajo. Vale la pena mencionar que trabajo en Linux, pero puedes configurarlo en Mac o Windows sin problemas.

Empiezo mi jornada laboral abriendo un terminal, cd ~/Projects/XYZ, y ejecutando tmuxasí que empecemos por ahí.

TMUX

¿Qué es el TMUX? Como dicen los autores:

TMUX es un multiplexor de terminales. Le permite cambiar fácilmente entre varios programas en un terminal, desconectarlos (siguen ejecutándose en segundo plano) y volver a conectarlos a otro terminal.

Lo uso para cambiar entre varias cosas en un terminal. Así, en una TMUX tengo la ventana Rieles servidor funcionando, en el segundo tengo mi Vim abierto, y cada vez que necesito hacer algo en el terminal, como comprobar rutas, ejecutar migraciones o pruebas, simplemente abro una nueva ventana con CTRL-A C y hacer la cosa.

No uso TMUX paneles, sólo ventanas, y hacer un montón de conmutación (tengo CTRL + doble-A bind para cambiar entre las últimas ventanas).

Otra función muy práctica de TMUX es que me permite buscar y copiar texto de un terminal sin utilizar el ratón.

Vim

Es la parte principal de mi flujo de trabajo. No voy a entrar en detalles sobre lo que VIM y en qué se diferencia de otros editores. Hay un montón de grandes artículos y videos al respecto. En pocas palabras, Vim es un editor modal. Tiene dos modos, el modo insertar y el modo normal. Insertar es para escribir texto en un documento y normal es para realizar diferentes operaciones en el documento, como mover el cursor, borrar fragmentos de texto, cambiarlo, etc. Suena extraño, pero después de algún tiempo se siente muy natural y es muy difícil volver al editor habitual.

Lo que me gustaría mostrarte es la forma en que combino Vim con otras herramientas para conseguir todo lo que necesito como desarrollador web.

Plugins

No soy fan de los plugins pesados Vim configuraciones, así que estoy usando sólo unos pocos. Aquí está la lista:

NERDtree - es un explorador de archivos. Te permite realizar fácilmente algunas operaciones básicas del sistema de archivos, como mover archivos, renombrarlos, crear archivos nuevos y muchas otras,

vim-endwise - Soy un desarrollador Ruby, así que lo uso para añadir fin después de si, do, defy otras palabras clave,

vim-rails - es un Rieles power plugin. Conoce la estructura de un Aplicación Rails. ¿Quiere comprobar el parcial que hay bajo el cursor? Pulse gf y se abre en la ventana actual. Tiene muchas otras opciones pero esa es la que yo uso más a menudo,

vim-surround - gran plugin que hace que trabajar con entornos sea muy fácil. Con él, usted puede cambiar el entorno del texto de () a [] en unas pocas pulsaciones de teclas,

vim-repeat - complementario de Vim-surround. Permite un cambio de entorno repetitivo con . (repita el último cambio en Vim),

vimwiki- mi manera de tomar notas,

fzf.vim+ fzf - la parte central de mi desarrollo web flujo de trabajo.

bandera de cooperación

Fzf + Ripgrep

Estas son las herramientas que definen mi forma de codificar. Me he dado cuenta de que, normalmente, cuando realizo tareas de programación, dedico la mayor parte del tiempo a averiguar cómo funcionan las cosas. Para ello, necesito comprobar rápidamente diferentes partes del código base, definiciones de métodos, clases y otras cosas.

Fzf es un filtro Unix interactivo para la línea de comandos que se puede utilizar con cualquier lista (archivos, historial de comandos, commits de git, listas de procesos); en otras palabras, es un buscador difuso.

Ripgrep es una alternativa a grep, pero es la más rápida.

Una vez combinados, estos dos me permiten encontrar rápidamente lo que quiero en mi proyecto.
Tengo dos ajustes en mi Vim config para ayudarme con esto:

nnoremap  :Archivos
nnoremap  :Rg

La primera me permite encontrar rápidamente los archivos correctos usando el buscador difuso en las rutas de los archivos (CTRL-P). La segunda ejecuta el buscador difuso en todas las rutas y contenidos de los archivos de mi proyecto usando Ripgrep (CTRL-F).

Por lo tanto, digamos que quiero encontrar la migración donde he añadido una columna a la usuarios mesa. Pulso CTRL-F y escribo algo como adcolusnam y coincidirá con add_column :usuarios, :nombre, :cadena.

Cuando busco la definición de un método, suelo ejecutar CTRL-F def nombre_método.

Es muy útil ya que busca a través de la ruta del archivo + el contenido. Es especialmente conveniente cuando sé que el contenido que estoy buscando está en una parte específica del proyecto. Por ejemplo, quiero encontrar donde actualizamos un nombre de usuario, y recuerdo que estaba en algún lugar de los controladores. Pulso CTRL-F conupdname para que coincida con la línea app/controllers/users_controller: @user.update(nombre: nuevo_nombre).

Si conoce la estructura de su proyecto y su base de código, puede construir fácilmente consultas de búsqueda difusas para encontrar rápidamente casi cualquier cosa que desee.

Vídeo

Pulse aquí para ver una breve grabación mía jugando con el código base de `discourse` (440k LOC en mi i5, 16GB de sobremesa) y mostrando cómo suelo moverme por el proyecto.

Resumen

Espero que te haya interesado mi montaje y hayas decidido dar Fzf en tus esfuerzos de codificación. Realmente cambió la forma en que estoy usando Vim como código editor.

Artículos relacionados

Fintech

5 ejemplos del mejor uso de Ruby

¿Te has preguntado alguna vez qué podemos hacer con Ruby? Bueno, el cielo es probablemente el límite, pero estaremos encantados de hablar de algunos casos más o menos conocidos...

The Codest
Pawel Muszynski Software Engineer
Desarrollo de software

Más información sobre Ruby on Rails con Pub/Sub

Pub/Sub puede aportar muchos beneficios al proyecto - puede hacer que el código sea limpio, desacoplar servicios y hacerlos fácilmente escalables. Más información sobre Pub/Sub en el siguiente artículo...

The Codest
Michal Pawlak Desarrollador Ruby senior
Desarrollo de software

Desarrollo de productos: Python frente a Ruby

Python y Ruby son los lenguajes de programación backend más utilizados. Python es un poco más popular y tiene una aplicación más amplia. Sin embargo, Ruby también aporta muchas ventajas y...

The Codest
Kamil Ferens Director de Crecimiento

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

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

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

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