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 υπάρχει ήδη') } 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 με TMUX, Vim, Fzf + Ripgrep - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2021-06-07
Ανάπτυξη λογισμικού

Ανάπτυξη Rails με TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

Πριν από μερικά χρόνια, έκανα ψησταριά με μερικούς φίλους μου, όλοι προγραμματιστές Java. Δεν είμαι σίγουρος πώς προέκυψε, αλλά αρχίσαμε να μιλάμε για τα περιβάλλοντα προγραμματισμού μας. Τους είπα ότι κάνω όλη την ανάπτυξή μου χρησιμοποιώντας Vim και τερματικά. Αυτό προκάλεσε μερικά αστεία και αστείες ερωτήσεις, όπως αν χρησιμοποιώ ακόμα κάρτες διάτρησης 🙂 .

Από τότε, δοκίμασα μερικά "πραγματικά" IDEs αλλά πάντα επέστρεφα στο Vim και τερματικά, καθώς είναι μια πολύ γρήγορη μέθοδος, έχει όλα τα εργαλεία που χρειάζομαι και απλά μου αρέσει να εργάζομαι σε λειτουργία κειμένου.

Ακολουθούν ορισμένες λεπτομέρειες σχετικά με τη ροή εργασίας μου. Αξίζει να αναφέρω ότι εργάζομαι σε Linux, αλλά μπορείτε να το ρυθμίσετε σε Mac ή Windows χωρίς προβλήματα.

Ξεκινάω την ημέρα εργασίας μου ανοίγοντας ένα τερματικό, cd ~/Projects/XYZ, και εκτελώντας tmux, οπότε ας ξεκινήσουμε από εκεί.

TMUX

Τι είναι TMUX? Όπως λένε οι συγγραφείς:

Το TMUX είναι ένας τερματικός πολυπλέκτης. Σας επιτρέπει να εναλλάσσεστε εύκολα μεταξύ διαφόρων προγραμμάτων σε ένα τερματικό, να τα αποσυνδέετε (συνεχίζουν να εκτελούνται στο παρασκήνιο) και να τα επανασυνδέετε σε ένα διαφορετικό τερματικό.

Το χρησιμοποιώ για να εναλλάσσομαι μεταξύ πολλών πραγμάτων σε ένα τερματικό. Έτσι, σε ένα TMUX παράθυρο, έχω το Ράγες διακομιστή που τρέχει, στο δεύτερο έχω το Vim και κάθε φορά που χρειάζεται να κάνω κάτι στο τερματικό, όπως να ελέγξω διαδρομές, να εκτελέσω μεταναστεύσεις ή δοκιμές, απλά ανοίγω ένα νέο παράθυρο με CTRL-A C και κάντε το πράγμα.

Δεν χρησιμοποιώ TMUX παράθυρα, μόνο παράθυρα, και κάνω πολλές εναλλαγές (έχω δεσμεύσει το CTRL + double-A για την εναλλαγή μεταξύ των τελευταίων παραθύρων).

Ένα άλλο πολύ βολικό χαρακτηριστικό του TMUX είναι ότι μου επιτρέπει να βρίσκω και να αντιγράφω κείμενο από ένα τερματικό χωρίς να χρησιμοποιώ ποντίκι.

Vim

Είναι το κύριο μέρος της ροής εργασίας μου. Δεν θα μπω σε λεπτομέρειες για το τι VIM είναι και πώς διαφέρει από τους άλλους επεξεργαστές. Υπάρχουν πολλά σπουδαία άρθρα και βίντεο σχετικά με αυτό. Με λίγα λόγια, Vim είναι ένας modal editor. Έχει δύο λειτουργίες, τη λειτουργία εισαγωγής και την κανονική λειτουργία. Η εισαγωγή είναι για την πληκτρολόγηση κειμένου σε ένα έγγραφο και η κανονική είναι για την εκτέλεση διαφόρων λειτουργιών στο έγγραφο, όπως η μετακίνηση του δρομέα, η διαγραφή τμημάτων κειμένου, η αλλαγή του και ούτω καθεξής. Ακούγεται παράξενο, αλλά μετά από λίγο καιρό το αισθάνεστε πολύ φυσικό και είναι πολύ δύσκολο να επιστρέψετε στον κανονικό σας επεξεργαστή.

Αυτό που θα ήθελα να σας δείξω είναι ο τρόπος με τον οποίο συνδυάζω Vim με άλλα εργαλεία για να έχω όλα όσα χρειάζομαι ως προγραμματιστής ιστοσελίδων.

Plugins

Δεν είμαι οπαδός των βαρέων πρόσθετων Vim configs, οπότε χρησιμοποιώ μόνο μερικές. Εδώ είναι η λίστα:

NERDtree - είναι ένας εξερευνητής αρχείων. Σας επιτρέπει να κάνετε εύκολα ορισμένες βασικές λειτουργίες του συστήματος αρχείων, όπως μετακίνηση αρχείων, μετονομασία, δημιουργία νέων αρχείων και πολλά άλλα,

vim-endwise - Είμαι προγραμματιστής Ruby, οπότε το χρησιμοποιώ για να προσθέσω τέλος μετά το εάν, do, def, και διάφορες άλλες λέξεις-κλειδιά,

vim-rails - είναι ένα Ράγες power plugin. Γνωρίζει τη δομή ενός Εφαρμογή Rails. Θέλετε να ελέγξετε το μερικό κάτω από το δρομέα σας; Απλά πατήστε gf και το ανοίγει στο τρέχον παράθυρο. Έχει πολλές άλλες επιλογές, αλλά αυτή είναι αυτή που χρησιμοποιώ πιο συχνά,

vim-surround - μεγάλο plugin που κάνει την εργασία με περιβάλλοντα πολύ εύκολη. Με αυτό, μπορείτε να αλλάξετε το περιβάλλον του κειμένου από () σε [] με λίγες πληκτρολογήσεις,

vim-repeat - συμπληρωματικό του Vim-surround. Επιτρέπει την επαναλαμβανόμενη αλλαγή περιβάλλοντος με . (επαναλάβετε την τελευταία αλλαγή στον Vim),

vimwiki- ο τρόπος μου να κρατάω σημειώσεις,

fzf.vim+ fzf - το βασικό μέρος του ανάπτυξη ιστοσελίδων ροή εργασιών.

πανό συνεργασίας

Fzf + Ripgrep

Αυτά είναι τα εργαλεία που καθορίζουν τον τρόπο με τον οποίο κάνω τον προγραμματισμό μου. Συνειδητοποίησα ότι συνήθως όταν κάνω κάποιες εργασίες κωδικοποίησης, ξοδεύω τον περισσότερο χρόνο μου για να βρω πώς λειτουργεί το πράγμα. Για να το κάνω αυτό, πρέπει να ελέγχω γρήγορα διάφορα μέρη της βάσης κώδικα, ορισμούς μεθόδων, κλάσεις και άλλα πράγματα.

Fzf είναι ένα διαδραστικό φίλτρο Unix για τη γραμμή εντολών που μπορεί να χρησιμοποιηθεί με οποιεσδήποτε λίστες (αρχεία, ιστορικό εντολών, git commits, λίστες διεργασιών)- με άλλα λόγια, είναι ένα ασαφές πρόγραμμα εύρεσης.

Ripgrep είναι μια εναλλακτική της grep, αλλά είναι η πιο γρήγορη.

Μόλις συνδυαστούν, αυτά τα δύο μου επιτρέπουν να βρίσκω γρήγορα ό,τι θέλω στο έργο.
Έχω δύο ρυθμίσεις στο Vim config αρχείο για να με βοηθήσει με αυτό:

nnoremap  :Files
nnoremap  :Rg

Η πρώτη μου επέτρεψε να βρω γρήγορα τα σωστά αρχεία χρησιμοποιώντας ασαφή εύρεση στις διαδρομές αρχείων (CTRL-P). Η δεύτερη εκτελεί την ασαφή αναζήτηση σε όλες τις διαδρομές και τα περιεχόμενα των αρχείων στο έργο μου χρησιμοποιώντας Ripgrep (CTRL-F).

Έτσι, ας πούμε ότι θέλω να βρω τη μετανάστευση όπου έχω προσθέσει μια στήλη στο χρήστες τραπέζι. Πατάω CTRL-F και γράφω κάτι σαν adcolusnam και θα ταιριάζει με add_column :users, :name, :string.

Όταν ψάχνω για έναν ορισμό μεθόδου, συχνά τρέχω το CTRL-F def method_name.

Είναι πολύ χρήσιμο καθώς αναζητά μέσω της διαδρομής αρχείου + περιεχόμενο. Είναι ιδιαίτερα βολικό όταν γνωρίζω ότι το περιεχόμενο που ψάχνω βρίσκεται σε ένα συγκεκριμένο μέρος του έργου. Για παράδειγμα, θέλω να βρω πού ενημερώσαμε ένα όνομα χρήστη και θυμάμαι ότι ήταν κάπου στους ελεγκτές. Πατάω CTRL-F conupdname για να ταιριάζει με τη γραμμή app/controllers/users_controller: @user.update(name: new_name).

Αν γνωρίζετε τη δομή του έργου και της βάσης κωδικών σας, μπορείτε εύκολα να κατασκευάσετε ασαφή ερωτήματα εύρεσης για να βρείτε γρήγορα σχεδόν οτιδήποτε θέλετε.

Βίντεο

Κάντε κλικ εδώ για να δείτε μια σύντομη ηχογράφηση με εμένα να παίζω με την κωδικοποιημένη βάση του `discourse` (440k LOC στον i5 μου, 16GB desktop) και να δείχνω πώς συνήθως κινούμαι γύρω από το έργο.

Περίληψη

Ελπίζω να ενδιαφέρεστε για την εγκατάστασή μου και να αποφασίσετε να δώσετε Fzf μια δοκιμή στις προσπάθειές σας για κωδικοποίηση. Πραγματικά άλλαξε τον τρόπο που χρησιμοποιώ Vim ως κωδικός συντάκτης.

Σχετικά άρθρα

Fintech

5 παραδείγματα της καλύτερης χρήσης της Ruby

Αναρωτηθήκατε ποτέ τι μπορούμε να κάνουμε με τη Ruby; Λοιπόν, ο ουρανός είναι μάλλον το όριο, αλλά είμαστε στην ευχάριστη θέση να μιλήσουμε για μερικές περισσότερο ή λιγότερο γνωστές περιπτώσεις...

The Codest
Pawel Muszynski Software Engineer
Ανάπτυξη λογισμικού

Μάθετε περισσότερα για το Ruby on Rails με Pub/Sub

Το Pub/Sub μπορεί να προσφέρει πολλά οφέλη στο έργο - μπορεί να κάνει τον κώδικα καθαρό, να αποσυνδέσει τις υπηρεσίες και να τις κάνει εύκολα επεκτάσιμες. Μάθετε περισσότερα για το Pub/Sub στο ακόλουθο άρθρο...

The Codest
Michal Pawlak Ανώτερος προγραμματιστής Ruby
Ανάπτυξη λογισμικού

Ανάπτυξη προϊόντων: Python vs. Ruby

Η Python και η Ruby είναι οι δύο πιο διαδεδομένες γλώσσες προγραμματισμού backend. Η Python είναι λίγο πιο δημοφιλής και έχει ευρύτερη εφαρμογή. Ωστόσο, η Ruby προσφέρει επίσης πολλά πλεονεκτήματα και...

The Codest
Kamil Ferens Επικεφαλής ανάπτυξης

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

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