The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2021-06-07
Vývoj softwaru

Vývoj Rails pomocí TMUX, Vim, Fzf + Ripgrep

The Codest

Marcin Doliwa

Software Engineer

Před několika lety jsem griloval se svými přáteli, samými vývojáři v Javě. Nejsem si jistý, jak k tomu došlo, ale začali jsme se bavit o našich kódovacích prostředích. Řekl jsem jim, že veškerý vývoj provádím pomocí Vimu a terminálů. Vyvolalo to několik vtipů a vtipných otázek, například jestli ještě používám děrné štítky 🙂.

Od té doby jsem vyzkoušel několik "opravdových" IDE, ale vždy jsem se vrátil k. Vim a terminály, protože je to velmi rychlá metoda, má všechny nástroje, které potřebuji, a jednoduše se mi líbí práce v textovém režimu.

Zde je několik podrobností o mém pracovním postupu. Stojí za zmínku, že pracuji v Linuxu, ale bez problémů si to můžete nastavit i na Macu nebo Windows.

Svůj pracovní den začínám otevřením terminálu, cd ~/Projects/XYZ a spuštěním příkazu tmux, takže začněme tam.

TMUX

Co je to TMUX? Jak říkají autoři:

TMUX je terminálový multiplexor. Umožňuje snadno přepínat mezi několika programy v jednom terminálu, odpojit je (běží dál na pozadí) a znovu je připojit k jinému terminálu.

Používám ho k přepínání mezi více věcmi v jednom terminálu. Takže v jednom TMUX okno, mám Rails server běží, ve druhém mám svůj Vim a pokaždé, když potřebuji něco udělat v terminálu, například zkontrolovat trasy, spustit migraci nebo testy, prostě otevřu nové okno s položkou CTRL-A C a udělejte to.

Nepoužívám TMUX panely, pouze okna, a hodně přepínat (mám CTRL + double-A vázané na přepínání mezi posledními okny).

Další velmi výhodnou funkcí TMUX že mi umožňuje vyhledávat a kopírovat text z terminálu bez použití myši.

Vim

Je to hlavní část mého pracovního postupu. Nebudu zabíhat do podrobností o tom, co je to VIM a v čem se liší od ostatních editorů. Je o něm spousta skvělých článků a videí. Několika slovy, Vim je modální editor. Má dva režimy, režim vkládání a normální režim. Režim Insert slouží k psaní textu do dokumentu a normální režim slouží k provádění různých operací s dokumentem, jako je přesouvání kurzoru, mazání fragmentů textu, jeho změna atd. Zní to zvláštně, ale po nějaké době to působí velmi přirozeně a je velmi těžké vrátit se k běžnému editoru.

Chtěl bych vám ukázat, jak kombinuji Vim s dalšími nástroji, abych získal vše, co jako webový vývojář potřebuji.

Zásuvné moduly

Nejsem fanouškem těžkých zásuvných modulů Vim konfigurací, takže používám jen několik z nich. Zde je jejich seznam:

NERDtree - je to průzkumník souborů. Umožňuje snadno provádět základní operace se souborovým systémem, jako je přesouvání souborů, přejmenování, vytváření nových souborů a mnoho dalších,

vim-endwise - Jsem Ruby vývojář, takže ho používám k přidání konec po pokud, do, defa několik dalších klíčových slov,

vim-rails - je to Rails zásuvný modul napájení. Zná strukturu Aplikace Rails. Chcete zkontrolovat dílčí část pod kurzorem? Stačí stisknout gf a otevře se v aktuálním okně. Má mnoho dalších možností, ale tuhle používám nejčastěji,

vim-surround - skvělý plugin, který velmi usnadňuje práci s okolím. Pomocí něj můžete změnit okolí textu z () na [] pomocí několika stisků kláves,

vim-repeat - doplňující Vim-surround. Umožňuje opakující se změnu prostředí s . (zopakujte poslední změnu ve Vimu),

vimwiki- můj způsob, jak si dělat poznámky,

fzf.vim+ fzf - hlavní část mého vývoj webových stránek pracovní postup.

banner spolupráce

Fzf + Ripgrep

To jsou nástroje, které určují způsob, jakým kóduji. Uvědomil jsem si, že když dělám nějakou kódovací úlohu, většinu času obvykle věnuji zjišťování, jak daná věc funguje. K tomu potřebuji rychle zkontrolovat různé části kódové základny, definice metod, tříd a další věci.

Fzf je interaktivní unixový filtr pro příkazový řádek, který lze použít s libovolnými seznamy (soubory, historie příkazů, revize git, seznamy procesů); jinými slovy, je to fuzzy vyhledávač.

Ripgrep je alternativou ke grepu, ale je to ten nejrychlejší.

Po jejich spojení mohu rychle najít cokoli, co chci. projekt.
Mám dvě nastavení Vim konfigurační soubor, který mi s tím pomůže:

nnoremap  :Files
nnoremap  :Rg

První z nich mi umožnil rychle najít správné soubory pomocí fuzzy vyhledávání cest k souborům (CTRL-P). Druhý spustí fuzzy vyhledávání na všech cestách a obsahu souborů v mém projektu pomocí funkce Ripgrep (CTRL-F).

Řekněme, že chci najít migraci, kde jsem přidal sloupec do pole uživatelé tabulka. Stisknu CTRL-F a napíšu něco jako adcolusnam a bude odpovídat add_column :users, :name, :string.

Když hledám definici metody, často spustím CTRL-F. def název_metody.

Je velmi užitečný, protože prohledává cestu k souboru + obsah. Je to výhodné zejména tehdy, když vím, že hledaný obsah se nachází v určité části projektu. Například chci najít, kde jsme aktualizovali uživatelské jméno, a pamatuji si, že to bylo někde v ovladačích. Stisknu tlačítko CTRL-F conupdname aby odpovídala řádku app/controllers/users_controller: @user.update(name: new_name).

Pokud znáte strukturu svého projektu a kódové základny, můžete snadno sestavit fuzzy vyhledávací dotazy a rychle najít téměř cokoli, co chcete.

Video

Klikněte zde krátký záznam, na kterém si hraji s kódovou základnou `discourse` (440k LOC na mém i5, 16GB desktopu) a ukazuji, jak se v projektu obvykle pohybuji.

Souhrn

Doufám, že vás zaujalo mé nastavení a rozhodli jste se dát Fzf vyzkoušet při svém kódování. Opravdu to změnilo způsob, jakým používám Vim jako kód editor.

Související články

Fintech

5 příkladů nejlepšího použití jazyka Ruby

Přemýšleli jste někdy o tom, co všechno můžeme dělat s Ruby? No, obloze se asi meze nekladou, ale rádi si povíme o některých více či méně známých případech...

The Codest
Pawel Muszynski Software Engineer
Vývoj softwaru

Další informace o Ruby on Rails s funkcí Pub/Sub

Pub/Sub může projektu přinést mnoho výhod - může zajistit čistotu kódu, oddělit služby a umožnit jejich snadné škálování. Více informací o Pub/Sub najdete v následujícím článku...

The Codest
Michal Pawlak Senior Ruby Developer
Vývoj softwaru

Vývoj produktu: Python vs. Ruby

Python a Ruby jsou nejpoužívanější programovací jazyky pro backend. Python je o něco populárnější a má širší uplatnění. Ruby však přináší také mnoho výhod a...

The Codest
Kamil Ferens Vedoucí oddělení růstu

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

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