window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } 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 }) }, } } })() Rails-Entwicklung mit TMUX, Vim, Fzf + Ripgrep - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-06-07
Software-Entwicklung

Rails-Entwicklung mit TMUX, Vim, Fzf + Ripgrep

Der Codest

Marcin Doliwa

Software Engineer

Vor ein paar Jahren habe ich mit einigen meiner Freunde, alles Java-Entwickler, gegrillt. Ich weiß nicht, wie es dazu kam, aber wir fingen an, über unsere Programmierumgebungen zu sprechen. Ich erzählte ihnen, dass ich meine gesamte Entwicklung mit Vim und Terminals durchführe. Das löste einige Witze und lustige Fragen aus, z. B. ob ich immer noch mit Lochkarten arbeite 🙂 .

Seitdem habe ich einige "echte" IDEs ausprobiert, bin aber immer wieder zu Vim und Terminals, weil es eine sehr schnelle Methode ist, alle Werkzeuge hat, die ich brauche, und ich einfach gerne im Textmodus arbeite.

Hier sind einige Details zu meinem Arbeitsablauf. Es ist erwähnenswert, dass ich unter Linux arbeite, aber Sie können es ohne Probleme auf Mac oder Windows einrichten.

Ich beginne meinen Arbeitstag mit dem Öffnen eines Terminals, cd ~/Projects/XYZ, und dem Ausführen von tmuxalso fangen wir dort an.

TMUX

Was ist TMUX? Wie die Autoren sagen:

TMUX ist ein Terminal-Multiplexer. Er ermöglicht es Ihnen, einfach zwischen mehreren Programmen in einem Terminal zu wechseln, sie zu trennen (sie laufen im Hintergrund weiter) und sie in einem anderen Terminal wieder zu verbinden.

Ich benutze es, um zwischen mehreren Dingen in einem Terminal zu wechseln. Also, in einem TMUX Fenster, habe ich die Schiene Server läuft, im zweiten habe ich meine Vim geöffnet, und jedes Mal, wenn ich etwas im Terminal tun muss, z. B. Routen prüfen, Migrationen oder Tests durchführen, öffne ich einfach ein neues Fenster mit CTRL-A C und die Sache durchziehen.

Ich benutze keine TMUX Fenster, nur Fenster, und schalten viel um (ich habe CTRL + Doppel-A gebunden, um zwischen den letzten Fenstern zu schalten).

Eine weitere sehr praktische Funktion von TMUX ist, dass ich damit Text in einem Terminal suchen und kopieren kann, ohne eine Maus zu benutzen.

Vim

Das ist der wichtigste Teil meines Arbeitsablaufs. Ich werde nicht ins Detail gehen, was VIM ist und wie es sich von anderen Editoren unterscheidet. Es gibt eine Menge toller Artikel und Videos darüber. In ein paar Worten, Vim ist ein modaler Editor. Er hat zwei Modi, den Einfügemodus und den normalen Modus. Im Einfügemodus kann man Text in ein Dokument eingeben, während man im normalen Modus verschiedene Operationen mit dem Dokument durchführen kann, z. B. den Cursor bewegen, Textfragmente löschen, den Text ändern usw. Es klingt seltsam, aber nach einiger Zeit fühlt es sich sehr natürlich an und es ist sehr schwer, zu Ihrem normalen Editor zurückzukehren.

Was ich Ihnen zeigen möchte, ist die Art und Weise, wie ich die Vim mit anderen Tools, um alles zu bekommen, was ich als Webentwickler brauche.

Plugins

Ich bin kein Fan von schweren Plugins Vim Konfigs, daher verwende ich nur einige wenige. Hier ist die Liste:

NERDtree - Es ist ein Datei-Explorer. Mit ihm können Sie ganz einfach einige grundlegende Dateisystemoperationen durchführen, z. B. Dateien verschieben, umbenennen, neue Dateien erstellen und vieles mehr,

vim-endwise - Ich bin ein Ruby-Entwickler und benutze es, um Ende nach wenn, tun, defund mehrere andere Schlüsselwörter,

vim-rails - Es ist ein Schiene Power-Plugin. Es kennt die Struktur eines Rails-Anwendung. Möchten Sie den Teilbereich unter Ihrem Cursor überprüfen? Drücken Sie einfach gf und es öffnet sich in Ihrem aktuellen Fenster. Es gibt noch viele andere Optionen, aber das ist die, die ich am häufigsten benutze,

vim-surround - tolles Plugin, das die Arbeit mit Umgebungen sehr einfach macht. Mit ihm können Sie die Umgebung des Textes von () zu [] in ein paar Tastenanschlägen ändern,

vim-wiederholen - komplementär zu Vim-surround. Es ermöglicht einen sich wiederholenden Umgebungswechsel mit . (letzte Änderung in Vim wiederholen),

vimwiki- meine Art, Notizen zu machen,

fzf.vim+ fzf - das Kernstück meiner Web-Entwicklung Arbeitsablauf.

Kooperationsbanner

Fzf + Ripgrep

Dies sind die Werkzeuge, die meine Art der Programmierung bestimmen. Mir ist klar geworden, dass ich bei der Erledigung von Programmieraufgaben die meiste Zeit damit verbringe, herauszufinden, wie die Dinge funktionieren. Dazu muss ich verschiedene Teile der Codebasis, Methodendefinitionen, Klassen und andere Dinge schnell überprüfen.

Fzf ist ein interaktiver Unix-Filter für die Kommandozeile, der mit beliebigen Listen (Dateien, Befehlshistorie, Git-Commits, Prozesslisten) verwendet werden kann; mit anderen Worten, es ist ein Fuzzy-Finder.

Ripgrep ist eine Alternative zu grep, aber es ist die schnellste.

Mit dieser Kombination kann ich alles, was ich suche, schnell in meiner Datenbank finden. Projekt.
Ich habe zwei Einstellungen in meinem Vim Konfigurationsdatei, um mir dabei zu helfen:

nnoremap  :Dateien
nnoremap  :Rg

Mit der ersten kann ich schnell die richtigen Dateien finden, indem ich die unscharfe Suche auf Dateipfaden verwende (STRG-P). Die zweite führt die unscharfe Suche für alle Pfade und Inhalte der Dateien in meinem Projekt aus, indem sie Ripgrep (CTRL-F).

Sagen wir, ich möchte die Migration finden, bei der ich eine Spalte zur Benutzer Tabelle. Ich drücke CTRL-F und schreibe etwas wie adcolusnam und es wird übereinstimmen mit add_column :benutzer, :name, :string.

Wenn ich nach einer Methodendefinition suche, führe ich oft CTRL-F def methoden_name.

Es ist sehr nützlich, da es den Dateipfad und den Inhalt durchsucht. Es ist besonders praktisch, wenn ich weiß, dass sich der gesuchte Inhalt in einem bestimmten Teil des Projekts befindet. Ich möchte zum Beispiel herausfinden, wo wir einen Benutzernamen aktualisiert haben, und ich erinnere mich, dass es irgendwo in den Controllern war. Ich drücke CTRL-F conupdname zur Zeile passen app/controllers/users_controller: @user.update(name: new_name).

Wenn Sie die Struktur Ihres Projekts und Ihrer Codebasis kennen, können Sie problemlos unscharfe Suchabfragen erstellen, um fast alles zu finden, was Sie suchen.

Video

Klicken Sie hier um eine kurze Aufnahme von mir zu sehen, wie ich mit der "Discourse"-Codebasis (440k LOC auf meinem i5, 16GB Desktop) herumspiele und zeige, wie ich mich normalerweise im Projekt bewege.

Zusammenfassung

Ich hoffe, Sie haben sich für meine Einrichtung interessiert und sich entschlossen, den Fzf bei Ihren Codierungsbemühungen ausprobieren. Es hat wirklich die Art und Weise verändert, wie ich Vim als Code Herausgeber.

Ähnliche Artikel

Fintech

5 Beispiele für die beste Verwendung von Ruby

Haben Sie sich jemals gefragt, was wir mit Ruby alles machen können? Nun, der Himmel ist wahrscheinlich die Grenze, aber wir sprechen gerne über einige mehr oder weniger bekannte Fälle...

Der Codest
Pawel Muszynski Software Engineer
Software-Entwicklung

Erfahren Sie mehr über Ruby on Rails mit Pub/Sub

Pub/Sub kann viele Vorteile für das Projekt bringen - es kann den Code sauber machen, Dienste entkoppeln und sie leicht skalierbar machen. Erfahren Sie mehr über Pub/Sub im folgenden Artikel...

Der Codest
Michal Pawlak Senior Ruby-Entwickler
Software-Entwicklung

Produktentwicklung: Python vs. Ruby

Python und Ruby sind die beiden am weitesten verbreiteten Backend-Programmiersprachen. Python ist etwas populärer und hat eine breitere Anwendung. Ruby bietet jedoch auch viele Vorteile und...

Der Codest
Kamil Ferens Leiter der Abteilung Wachstum

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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