window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } 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 }) }, } } })() Kiskot kehitys TMUX, Vim, Fzf + Ripgrep - Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2021-06-07
Ohjelmistokehitys

Rails-kehitys TMUX, Vim, Fzf + Ripgrep -ohjelmilla

Codest

Marcin Doliwa

Software Engineer

Muutama vuosi sitten grillailin ystävieni kanssa, jotka olivat kaikki Java-kehittäjiä. En ole varma, miten asia tuli puheeksi, mutta aloimme puhua koodausympäristöistämme. Kerroin heille, että teen kaiken kehitystyöni Vimillä ja terminaaleilla. Se herätti vitsejä ja hauskoja kysymyksiä, kuten käytänkö yhä reikäkortteja 🙂 .

Sen jälkeen olen kokeillut joitakin "oikeita" IDE-ohjelmia, mutta palasin aina takaisin Vim ja terminaalit, koska se on erittäin nopea menetelmä, siinä on kaikki tarvitsemani työkalut ja pidän yksinkertaisesti työskentelystä tekstimoodissa.

Seuraavassa on joitakin yksityiskohtia työnkulustani. On syytä mainita, että työskentelen Linuxilla, mutta voit asentaa sen Macilla tai Windowsilla ilman ongelmia.

Aloitan työpäiväni avaamalla terminaalin, cd ~/Projektit/XYZ ja suorittamalla seuraavan komennon tmux, joten aloitetaan siitä.

TMUX

Mikä on TMUX? Kuten kirjoittajat sanovat:

TMUX on terminaalimultiplekseri. Sen avulla voit helposti vaihtaa useiden ohjelmien välillä yhdessä päätelaitteessa, irrottaa ne (ne pysyvät käynnissä taustalla) ja liittää ne uudelleen toiseen päätelaitteeseen.

Käytän sitä vaihtaakseni useiden asioiden välillä yhdessä päätelaitteessa. Joten yhdessä TMUX ikkunassa, minulla on Kiskot palvelin käynnissä, toisessa minulla on minun Vim avattu, ja aina kun minun täytyy tehdä jotain terminaalissa, kuten tarkistaa reittejä, suorittaa migraatioita tai testejä, avaan vain uuden ikkunan, jossa lukee CTRL-A C ja tee se.

En käytä TMUX ikkunat, vain ikkunat, ja vaihda paljon (minulla on CTRL + double-A sidottu vaihtamaan viimeisten ikkunoiden välillä).

Toinen erittäin kätevä ominaisuus TMUX on se, että sen avulla voin etsiä ja kopioida tekstiä päätelaitteesta ilman hiirtä.

Vim

Se on tärkein osa työnkulkuani. En aio mennä yksityiskohtiin siitä, mitä tapahtuu. VIM on ja miten se eroaa muista editoreista. Siitä on paljon hyviä artikkeleita ja videoita. Muutamalla sanalla, Vim on modaalinen editori. Siinä on kaksi tilaa, insert-tila ja normaali tila. Insert-tilassa voit kirjoittaa tekstiä asiakirjaan, ja normaalitilassa voit suorittaa asiakirjalle erilaisia toimintoja, kuten siirtää kursoria, poistaa tekstikappaleita, muuttaa tekstiä ja niin edelleen. Se kuulostaa oudolta, mutta jonkin ajan kuluttua se tuntuu hyvin luonnolliselta, ja on hyvin vaikea palata takaisin tavalliseen editoriin.

Haluan näyttää teille, miten yhdistän - Vim muiden työkalujen kanssa saadakseni kaiken, mitä tarvitsen web-kehittäjänä.

Liitännäiset

En pidä raskaista lisäosista Vim konfiguraatioita, joten käytän vain muutamia. Tässä on luettelo:

NERDtree - se on tiedostojen etsintäohjelma. Sen avulla voit helposti tehdä joitakin tiedostojärjestelmän perustoimintoja, kuten siirtää tiedostoja, nimetä niitä uudelleen, luoda uusia tiedostoja ja monia muita,

vim-endwise - Olen Ruby-kehittäjä, joten käytän sitä lisäämään end jälkeen jos, tee, defja useita muita avainsanoja,

vim-rails - se on Kiskot virtaliitäntä. Se tuntee rakenteen Rails-sovellus. Haluatko tarkistaa kursorin alla olevan osittaisen? Paina vain gf ja se avautuu nykyiseen ikkunaan. Siinä on monia muitakin vaihtoehtoja, mutta käytän sitä useimmiten,

vim-surround - loistava lisäosa, joka tekee työskentelystä ympäristön kanssa erittäin helppoa. Sen avulla voit vaihtaa tekstin ympäristön ():sta []:ksi muutamalla näppäimen painalluksella,

vim-repeat - täydentää Vim-surroundia. Se mahdollistaa toistuvan ympäröivän muutoksen . (toista viimeinen muutos Vimissä),

vimwiki- tapani tehdä muistiinpanoja,

fzf.vim+ fzf - keskeinen osa minun web-kehitys työnkulku.

yhteistyöbanneri

Fzf + Ripgrep

Nämä ovat työkaluja, jotka määrittelevät tapani tehdä koodausta. Tajusin, että yleensä kun teen koodaustehtäviä, käytän suurimman osan ajastani siihen, että selvitän, miten asiat toimivat. Tätä varten minun on tarkistettava nopeasti koodipohjan eri osat, metodimääritykset, luokat ja muut asiat.

Fzf on interaktiivinen Unix-suodatin komentoriville, jota voidaan käyttää minkä tahansa luettelon kanssa (tiedostot, komentohistoria, git-kommitit, prosessiluettelot); toisin sanoen se on sumea etsijä.

Ripgrep on vaihtoehto grep:lle, mutta se on se kaikkein nopein.

Kun nämä kaksi yhdistetään, löydän nopeasti kaiken haluamani omasta projekti.
Minulla on kaksi asetusta Vim config-tiedosto auttaa minua tässä:

nnoremap  :Files
nnoremap  :Rg

Ensimmäisen avulla löysin nopeasti oikeat tiedostot käyttämällä tiedostopolkujen sumeaa hakua (CTRL-P). Toinen käyttää sumeaa etsimistä kaikkiin projektini tiedostopolkuihin ja tiedostojen sisältöön käyttämällä seuraavia komentoja Ripgrep (CTRL-F).

Sanotaan, että haluan etsiä muuttoliikettä, jossa lisäsin sarakkeen sarakkeeseen käyttäjät pöytä. Painan CTRL-F-näppäintä ja kirjoitan jotain seuraavanlaista adcolusnam ja se vastaa add_column :users, :name, :string.

Kun etsin metodin määritelmää, käytän usein CTRL-F-merkkiä def metodin_nimi.

Se on erittäin hyödyllinen, koska se etsii tiedostopolun + sisällön kautta. Se on erityisen kätevää, kun tiedän, että etsimäni sisältö on tietyssä projektin osassa. Haluan esimerkiksi löytää, missä päivitimme käyttäjätunnuksen, ja muistan sen olleen jossain ohjaimissa. Painan CTRL-F conupdname vastaamaan riviä app/controllers/users_controller: @user.update(nimi: uusi_nimi): @user.update(nimi: uusi_nimi).

Jos tunnet projektisi ja koodipohjasi rakenteen, voit helposti laatia sumeat hakukyselyt, joiden avulla voit löytää nopeasti lähes mitä tahansa haluamaasi.

Video

Klikkaa tästä nähdäksesi lyhyen nauhoituksen, jossa leikittelen `discourse`-koodipohjan kanssa (440k LOC i5:llä, 16GB:n työpöydällä) ja näytän, miten yleensä liikun projektissa.

Yhteenveto

Toivottavasti olet kiinnostunut minun setup ja päätti antaa Fzf kokeilla koodauspyrkimyksiäsi. Se todella muutti tapaa, jolla käytän Vim kuin koodi toimittaja.

Aiheeseen liittyvät artikkelit

Fintech

5 esimerkkiä Rubyn parhaasta käytöstä

Oletko koskaan miettinyt, mitä voimme tehdä Rubylla? No, taivas on luultavasti rajana, mutta puhumme mielellämme muutamista enemmän tai vähemmän tunnetuista tapauksista....

Codest
Pawel Muszynski Software Engineer
Ohjelmistokehitys

Lisätietoja Ruby on Rails with Pub/Sub -laitteesta

Pub/Sub voi tuoda monia etuja projektille - se voi tehdä koodista siistiä, irrottaa palvelut toisistaan ja tehdä niistä helposti skaalautuvia. Lue lisää Pub/Subista seuraavasta artikkelista....

Codest
Michal Pawlak Vanhempi Ruby-kehittäjä
Ohjelmistokehitys

Tuotekehitys: Python vs. Ruby

Python ja Ruby ovat molemmat yleisimmin käytettyjä backend-ohjelmointikieliä. Python on hieman suositumpi ja sen käyttöalue on laajempi. Ruby tuo kuitenkin myös monia etuja ja...

Codest
Kamil Ferens Kasvupäällikkö

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

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