window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() Développement Rails avec TMUX, Vim, Fzf + Ripgrep - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2021-06-07
Développement de logiciels

Développement Rails avec TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

Il y a quelques années, je faisais la grillade avec certains de mes amis, tous développeurs Java. Je ne sais pas trop comment cela s'est produit, mais nous avons commencé à parler de nos environnements de codage. Je leur ai dit que je faisais tout mon développement en utilisant Vim et des terminaux. Cela a déclenché des blagues et des questions amusantes, comme celle de savoir si j'utilisais encore des cartes perforées 🙂 .

Depuis, j'ai essayé quelques "vrais" IDE mais je suis toujours revenu à Vim et les terminaux, car c'est une méthode très rapide, qui dispose de tous les outils dont j'ai besoin et j'aime tout simplement travailler en mode texte.

Voici quelques détails sur mon processus de travail. Il convient de préciser que je travaille sous Linux, mais vous pouvez l'installer sur Mac ou Windows sans problème.

Je commence ma journée de travail en ouvrant un terminal, cd ~/Projets/XYZ, et en lançant tmuxCommençons donc par là.

TMUX

Qu'est-ce que TMUX? Comme le disent les auteurs :

TMUX est un multiplexeur de terminal. Il vous permet de passer facilement d'un programme à l'autre dans un même terminal, de les détacher (ils continuent à tourner en arrière-plan) et de les rattacher à un autre terminal.

Je l'utilise pour passer d'une chose à l'autre dans un seul terminal. Ainsi, dans un TMUX j'ai la fenêtre Rails en cours d'exécution, dans le second, j'ai mon Vim et chaque fois que j'ai besoin de faire quelque chose dans le terminal, comme vérifier des routes, exécuter des migrations ou des tests, j'ouvre simplement une nouvelle fenêtre avec CTRL-A C et de faire ce qu'il faut.

Je n'utilise pas TMUX Il n'y a pas de fenêtres, seulement des fenêtres, et il y a beaucoup de changements (j'ai CTRL + double-A pour passer d'une fenêtre à l'autre).

Une autre caractéristique très pratique de TMUX est qu'il me permet de trouver et de copier du texte à partir d'un terminal sans utiliser de souris.

Vim

C'est la partie principale de mon flux de travail. Je n'entrerai pas dans les détails de ce que font les VIM et en quoi il est différent des autres éditeurs. Il existe un grand nombre d'articles et de vidéos sur le sujet. En quelques mots, Vim est un éditeur modal. Il possède deux modes, le mode insertion et le mode normal. Le mode insertion permet de taper du texte dans un document et le mode normal permet d'effectuer différentes opérations sur le document, comme déplacer le curseur, supprimer des fragments de texte, le modifier, etc. Cela peut paraître étrange, mais après un certain temps, cela semble très naturel et il est très difficile de revenir à son éditeur habituel.

J'aimerais vous montrer comment je combine les éléments suivants Vim avec d'autres outils pour obtenir tout ce dont j'ai besoin en tant que développeur web.

Plugins

Je ne suis pas un adepte du plugin lourd Vim Je n'en utilise donc que quelques-unes. Voici la liste :

NERDtree - c'est un explorateur de fichiers. Il vous permet d'effectuer facilement des opérations de base sur le système de fichiers, comme déplacer des fichiers, les renommer, en créer de nouveaux, et bien d'autres encore,

vim-endwise - Je suis un développeur Ruby, je l'utilise donc pour ajouter des fin après si, faire, déf.et plusieurs autres mots-clés,

vim-rails - c'est un Rails plugin de puissance. Il connaît la structure d'un Application Rails. Vous souhaitez vérifier la partie située sous votre curseur ? Appuyez simplement sur gf et il l'ouvre dans votre fenêtre actuelle. Il existe de nombreuses autres options, mais c'est celle que j'utilise le plus souvent,

vim-surround - Un excellent plugin qui rend le travail avec l'environnement très facile. Avec lui, vous pouvez changer l'environnement du texte de () à [] en quelques frappes,

vim-repeat - complémentaire de Vim-surround. Il permet un changement répété de l'environnement avec . (répéter le dernier changement dans Vim),

vimwiki- ma façon de prendre des notes,

fzf.vim+ fzf - la partie centrale de mon développement web flux de travail.

bannière de coopération

Fzf + Ripgrep

Ce sont les outils qui définissent ma façon de coder. Je me suis rendu compte qu'en général, lorsque j'effectue des tâches de codage, je passe le plus clair de mon temps à trouver comment les choses fonctionnent. Pour ce faire, j'ai besoin de vérifier rapidement différentes parties de la base de code, les définitions de méthodes, les classes et d'autres choses.

Fzf est un filtre Unix interactif pour la ligne de commande qui peut être utilisé avec n'importe quelle liste (fichiers, historique des commandes, commits git, listes de processus) ; en d'autres termes, c'est un outil de recherche flou.

Ripgrep est une alternative à grep, mais c'est le plus rapide.

Une fois combinés, ces deux éléments me permettent de trouver rapidement tout ce que je veux dans ma projet.
J'ai deux paramètres dans mon Vim pour m'aider :

nnoremap  : Fichiers
nnoremap  :Rg

La première me permet de trouver rapidement les fichiers corrects en utilisant la recherche floue sur les chemins d'accès aux fichiers (CTRL-P). La seconde lance la recherche floue sur tous les chemins d'accès et le contenu des fichiers de mon projet à l'aide de la commande Ripgrep (CTRL-F).

Supposons que je veuille trouver la migration à l'endroit où j'ai ajouté une colonne à la base de données utilisateurs table. J'appuie sur CTRL-F et j'écris quelque chose comme adcolusnam et il correspondra à add_column :users, :name, :string.

Lorsque je cherche une définition de méthode, je lance souvent CTRL-F def nom_de_la_méthode.

C'est très utile car cela permet de rechercher le chemin d'accès au fichier + le contenu. C'est particulièrement pratique lorsque je sais que le contenu que je recherche se trouve dans une partie spécifique du projet. Par exemple, je veux trouver l'endroit où nous avons mis à jour un nom d'utilisateur, et je me souviens que c'était quelque part dans les contrôleurs. Je clique sur CTRL-F nom de la configuration pour correspondre à la ligne app/controllers/users_controller : @user.update(name : new_name).

Si vous connaissez la structure de votre projet et de votre base de code, vous pouvez facilement construire des requêtes de recherche floue pour trouver rapidement presque tout ce que vous voulez.

Vidéo

Cliquez ici pour voir un court enregistrement de moi jouant avec la base de code `discourse` (440k LOC sur mon i5, 16GB desktop) et montrant comment je me déplace habituellement dans le projet.

Résumé

J'espère que vous avez été intéressé par mon installation et que vous avez décidé d'y participer. Fzf un essai dans vos efforts de codage. Il a vraiment changé la façon dont j'utilise Vim en tant que code éditeur.

Articles connexes

Fintech

5 exemples de la meilleure utilisation de Ruby

Vous êtes-vous déjà demandé ce que l'on pouvait faire avec Ruby ? Eh bien, le ciel est probablement la limite, mais nous sommes heureux de parler de quelques cas plus ou moins connus...

The Codest
Pawel Muszynski Software Engineer
Développement de logiciels

En savoir plus sur Ruby on Rails avec Pub/Sub

Pub/Sub peut apporter de nombreux avantages au projet - il peut rendre le code propre, découpler les services et les rendre facilement évolutifs. Pour en savoir plus sur Pub/Sub, consultez l'article suivant...

The Codest
Michal Pawlak Développeur Ruby senior
Développement de logiciels

Développement de produits : Python vs. Ruby

Python et Ruby sont les deux langages de programmation backend les plus utilisés. Python est un peu plus populaire et a une application plus large. Cependant, Ruby apporte également de nombreux avantages et...

The Codest
Kamil Ferens Responsable de la croissance

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

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