{"id":3534,"date":"2019-04-24T08:53:32","date_gmt":"2019-04-24T08:53:32","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"},"modified":"2026-04-24T11:28:19","modified_gmt":"2026-04-24T11:28:19","slug":"rails-development-z-tmux-vim-fzf-ripgrep","status":"publish","type":"post","link":"https:\/\/thecodest.co\/pl\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","title":{"rendered":"Rails Development z TMUX, Vim, Fzf + Ripgrep"},"content":{"rendered":"<p>Od tego czasu wypr\u00f3bowa\u0142em kilka \"prawdziwych\" IDE, ale zawsze wraca\u0142em do <strong>Vim<\/strong> i terminale, poniewa\u017c jest to bardzo szybka metoda, ma wszystkie narz\u0119dzia, kt\u00f3rych potrzebuj\u0119 i po prostu lubi\u0119 pracowa\u0107 w trybie tekstowym.<\/p>\n\n\n\n<p>Oto kilka szczeg\u00f3\u0142\u00f3w na temat mojego przep\u0142ywu pracy. Warto wspomnie\u0107, \u017ce pracuj\u0119 na Linuksie, ale bez problemu mo\u017cna go skonfigurowa\u0107 na Macu lub Windowsie.<\/p>\n\n\n\n<p>Sw\u00f3j dzie\u0144 pracy zaczynam od otwarcia terminala, cd ~\/Projects\/XYZ i uruchomienia aplikacji <strong>tmux<\/strong>wi\u0119c zacznijmy od tego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TMUX<\/h2>\n\n\n\n<p>Co to jest <strong>TMUX<\/strong>? Jak m\u00f3wi\u0105 autorzy:<\/p>\n\n\n\n<p><em>TMUX jest multiplekserem terminali. Pozwala \u0142atwo prze\u0142\u0105cza\u0107 si\u0119 mi\u0119dzy kilkoma programami w jednym terminalu, od\u0142\u0105cza\u0107 je (dzia\u0142aj\u0105 w tle) i ponownie do\u0142\u0105cza\u0107 do innego terminala.<\/em><\/p>\n\n\n\n<p>U\u017cywam go do prze\u0142\u0105czania si\u0119 mi\u0119dzy wieloma rzeczami w jednym terminalu. Tak wi\u0119c, w jednym <strong>TMUX<\/strong> okno, mam <strong><a href=\"https:\/\/thecodest.co\/pl\/blog\/ways-to-increase-your-rails-performance\/\">Szyny<\/a> <\/strong>serwer uruchomiony, w drugim mam m\u00f3j <strong>Vim<\/strong> i za ka\u017cdym razem, gdy musz\u0119 zrobi\u0107 co\u015b w terminalu, na przyk\u0142ad sprawdzi\u0107 trasy, uruchomi\u0107 migracje lub testy, po prostu otwieram nowe okno z napisem <code>CTRL-A C<\/code> i zrobi\u0107 to.<\/p>\n\n\n\n<p>Nie u\u017cywam <strong>TMUX<\/strong> paneli, tylko okien, i robi\u0119 du\u017co prze\u0142\u0105czania (mam CTRL + podw\u00f3jne wi\u0105zanie A do prze\u0142\u0105czania mi\u0119dzy ostatnimi oknami).<\/p>\n\n\n\n<p>Kolejn\u0105 bardzo wygodn\u0105 funkcj\u0105 <strong>TMUX<\/strong> jest to, \u017ce pozwala mi znale\u017a\u0107 i skopiowa\u0107 tekst z terminala bez u\u017cycia myszy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vim<\/h2>\n\n\n\n<p>To g\u0142\u00f3wna cz\u0119\u015b\u0107 mojego przep\u0142ywu pracy. Nie b\u0119d\u0119 wdawa\u0142 si\u0119 w szczeg\u00f3\u0142y na temat tego, co <strong>VIM<\/strong> i czym r\u00f3\u017cni si\u0119 od innych edytor\u00f3w. Istnieje wiele \u015bwietnych artyku\u0142\u00f3w i film\u00f3w na ten temat. W kilku s\u0142owach, <strong>Vim<\/strong> jest edytorem modalnym. Posiada on dwa tryby, tryb wstawiania i tryb normalny. Wstawianie s\u0142u\u017cy do wpisywania tekstu do dokumentu, a normalny do wykonywania r\u00f3\u017cnych operacji na dokumencie, takich jak przesuwanie kursora, usuwanie fragment\u00f3w tekstu, zmienianie go itp. Brzmi to dziwnie, ale po pewnym czasie czuje si\u0119 bardzo naturalnie i bardzo trudno jest wr\u00f3ci\u0107 do zwyk\u0142ego edytora.<\/p>\n\n\n\n<p>To, co chcia\u0142bym ci pokaza\u0107, to spos\u00f3b, w jaki \u0142\u0105cz\u0119 <strong>Vim<\/strong> z innymi narz\u0119dziami, aby uzyska\u0107 wszystko, czego potrzebuj\u0119 jako <a href=\"https:\/\/thecodest.co\/pl\/blog\/find-your-ideal-stack-for-web-development\/\">sie\u0107<\/a> <a href=\"https:\/\/thecodest.co\/pl\/blog\/hire-vue-js-developers\/\">deweloper<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wtyczki<\/h2>\n\n\n\n<p>Nie jestem fanem ci\u0119\u017ckich wtyczek <strong>Vim<\/strong> konfiguracji, wi\u0119c u\u017cywam tylko kilku. Oto lista:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/preservim\/nerdtree\" rel=\"nofollow\">NERDtree<\/a> - jest eksploratorem plik\u00f3w. Umo\u017cliwia \u0142atwe wykonywanie podstawowych operacji w systemie plik\u00f3w, takich jak przenoszenie plik\u00f3w, zmiana nazwy, tworzenie nowych plik\u00f3w i wiele innych,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-endwise\" rel=\"nofollow\">vim-endwise<\/a> - Jestem <a href=\"https:\/\/thecodest.co\/pl\/blog\/hire-ror-developer\/\">Ruby<\/a> dewelopera, wi\u0119c u\u017cywam go do dodawania <code>koniec<\/code> po <code>je\u015bli<\/code>, <code>robi\u0107<\/code>, <code>def<\/code>i kilka innych s\u0142\u00f3w kluczowych,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-rails\" rel=\"nofollow\">vim-rails<\/a> - to <strong>Szyny<\/strong> power plugin. Zna ona struktur\u0119 pliku <strong>Aplikacja Rails<\/strong>. Chcesz sprawdzi\u0107 cz\u0119\u015b\u0107 pod kursorem? Wystarczy nacisn\u0105\u0107 <code>gf<\/code> i otworzy j\u0105 w bie\u017c\u0105cym oknie. Ma te\u017c wiele innych opcji, ale z tej korzystam najcz\u0119\u015bciej,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-surround\" rel=\"nofollow\">vim-surround<\/a> - \u015awietna wtyczka, kt\u00f3ra bardzo u\u0142atwia prac\u0119 z otoczeniem. Za jej pomoc\u0105 mo\u017cna zmieni\u0107 otoczenie tekstu z () na [] za pomoc\u0105 kilku naci\u015bni\u0119\u0107 klawiszy,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-repeat\" rel=\"nofollow\">vim-repeat <\/a>- komplementarny do Vim-surround. Pozwala na powtarzaj\u0105c\u0105 si\u0119 zmian\u0119 otoczenia z <code>.<\/code> (powt\u00f3rz ostatni\u0105 zmian\u0119 w Vim),<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/vimwiki\/vimwiki\" rel=\"nofollow\">vimwiki<\/a>- m\u00f3j spos\u00f3b na robienie notatek,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/junegunn\/fzf.vim\" rel=\"nofollow\">fzf.vim<\/a>+ <a href=\"https:\/\/github.com\/junegunn\/fzf\" rel=\"nofollow\">fzf<\/a> - g\u0142\u00f3wn\u0105 cz\u0119\u015bci\u0105 mojego <a href=\"https:\/\/thecodest.co\/pl\/blog\/find-your-node-js-expert-for-hire-today\/\">tworzenie stron internetowych<\/a> przep\u0142yw pracy.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/thecodest.co\/contact\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/interested_in_cooperation_.png\" alt=\"baner wsp\u00f3\u0142pracy\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fzf + Ripgrep<\/h2>\n\n\n\n<p>S\u0105 to narz\u0119dzia, kt\u00f3re definiuj\u0105 m\u00f3j spos\u00f3b kodowania. Zda\u0142em sobie spraw\u0119, \u017ce zazwyczaj, gdy wykonuj\u0119 jakie\u015b zadania zwi\u0105zane z kodowaniem, wi\u0119kszo\u015b\u0107 czasu sp\u0119dzam na sprawdzaniu, jak dane rzeczy dzia\u0142aj\u0105. Aby to zrobi\u0107, musz\u0119 szybko sprawdzi\u0107 r\u00f3\u017cne cz\u0119\u015bci bazy kodu, definicje metod, klasy i inne rzeczy.<\/p>\n\n\n\n<p><strong>Fzf<\/strong> to interaktywny filtr uniksowy dla wiersza polece\u0144, kt\u00f3ry mo\u017ce by\u0107 u\u017cywany z dowolnymi listami (pliki, historia polece\u0144, zatwierdzenia git, listy proces\u00f3w); innymi s\u0142owy, jest to wyszukiwarka rozmyta.<\/p>\n\n\n\n<p><strong>Ripgrep<\/strong> jest alternatyw\u0105 dla grep, ale jest niesamowicie szybki.<\/p>\n\n\n\n<p>Po po\u0142\u0105czeniu, te dwa elementy pozwalaj\u0105 mi szybko znale\u017a\u0107 wszystko, czego chc\u0119 w moim <a href=\"https:\/\/thecodest.co\/pl\/dictionary\/why-do-projects-fail\/\">projekt<\/a>.<br>Mam dwa ustawienia w moim <strong>Vim<\/strong> plik konfiguracyjny, aby mi w tym pom\u00f3c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"vim\" class=\"language-vim\">nnoremap  :Files\nnnoremap  :Rg<\/code><\/pre>\n\n\n\n<p>Pierwsza z nich pozwala mi szybko znale\u017a\u0107 odpowiednie pliki za pomoc\u0105 wyszukiwania rozmytego na \u015bcie\u017ckach plik\u00f3w (CTRL-P). Drugi uruchamia wyszukiwark\u0119 rozmyt\u0105 na wszystkich \u015bcie\u017ckach i zawarto\u015bci plik\u00f3w w moim projekcie przy u\u017cyciu <strong>Ripgrep<\/strong> (CTRL-F).<\/p>\n\n\n\n<p>Powiedzmy, \u017ce chc\u0119 znale\u017a\u0107 migracj\u0119, w kt\u00f3rej doda\u0142em kolumn\u0119 do pliku <code>u\u017cytkownicy<\/code> tabela. Naciskam CTRL-F i pisz\u0119 co\u015b w stylu <code>adcolusnam<\/code> i b\u0119dzie pasowa\u0107 <code>add_column :users, :name, :string<\/code>.<\/p>\n\n\n\n<p>Kiedy szukam definicji metody, cz\u0119sto uruchamiam CTRL-F <code>def method_name<\/code>.<\/p>\n\n\n\n<p>Jest to bardzo przydatne, poniewa\u017c przeszukuje \u015bcie\u017ck\u0119 pliku + zawarto\u015b\u0107. Jest to szczeg\u00f3lnie wygodne, gdy wiem, \u017ce zawarto\u015b\u0107, kt\u00f3rej szukam, znajduje si\u0119 w okre\u015blonej cz\u0119\u015bci projektu. Na przyk\u0142ad, chc\u0119 znale\u017a\u0107 miejsce, w kt\u00f3rym zaktualizowali\u015bmy nazw\u0119 u\u017cytkownika i pami\u0119tam, \u017ce by\u0142o to gdzie\u015b w kontrolerach. Naciskam <code>CTRL-F<\/code> <code>conupdname<\/code> aby dopasowa\u0107 lini\u0119 <code>app\/controllers\/users_controller: @user.update(name: new_name)<\/code>.<\/p>\n\n\n\n<p>Je\u015bli znasz sw\u00f3j projekt i struktur\u0119 bazy kodu, mo\u017cesz \u0142atwo skonstruowa\u0107 rozmyte zapytania wyszukiwania, aby szybko znale\u017a\u0107 prawie wszystko, czego potrzebujesz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wideo<\/h2>\n\n\n\n<p><a href=\"https:\/\/youtu.be\/yJWl4CfvMC8\" rel=\"nofollow\">Kliknij tutaj <\/a> aby zobaczy\u0107 kr\u00f3tkie nagranie, na kt\u00f3rym bawi\u0119 si\u0119 baz\u0105 kodu `discourse` (440k LOC na moim i5, 16GB desktop) i pokazuj\u0119, jak zwykle poruszam si\u0119 po projekcie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p>Mam nadziej\u0119, \u017ce zainteresowa\u0142 Ci\u0119 m\u00f3j setup i zdecydowa\u0142e\u015b si\u0119 go udost\u0119pni\u0107. <strong>Fzf<\/strong> spr\u00f3bowa\u0107 swoich si\u0142 w kodowaniu. To naprawd\u0119 zmieni\u0142o spos\u00f3b, w jaki u\u017cywam <strong>Vim<\/strong> jako <a href=\"https:\/\/thecodest.co\/pl\/dictionary\/what-is-code-refactoring\/\">kod<\/a> red.<\/p>","protected":false},"excerpt":{"rendered":"<p>Kilka lat temu grillowa\u0142em z kilkoma moimi przyjaci\u00f3\u0142mi, wszyscy byli programistami Java. Nie jestem pewien, jak do tego dosz\u0142o, ale zacz\u0119li\u015bmy rozmawia\u0107 o naszych \u015brodowiskach programistycznych. Powiedzia\u0142em im, \u017ce ca\u0142y m\u00f3j program tworz\u0119 przy u\u017cyciu Vima i terminali. Wywo\u0142a\u0142o to kilka \u017cart\u00f3w i zabawnych pyta\u0144, np. czy nadal u\u017cywam kart dziurkowanych \ud83d\ude42<\/p>","protected":false},"author":2,"featured_media":3535,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3534","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rails Development with TMUX, Vim, Fzf + Ripgrep - The Codest<\/title>\n<meta name=\"description\" content=\"A few years ago, I was grilling with some of my friends, all Java developers. Not sure how it came up, but we started talking about our coding environments. I told them I\u2019m doing all my development using Vim and terminals. It triggered some jokes and funny questions, like if I\u2019m still using punch cards :)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/pl\/blog\/rails-development-z-tmux-vim-fzf-ripgrep\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rails Development with TMUX, Vim, Fzf + Ripgrep\" \/>\n<meta property=\"og:description\" content=\"A few years ago, I was grilling with some of my friends, all Java developers. Not sure how it came up, but we started talking about our coding environments. I told them I\u2019m doing all my development using Vim and terminals. It triggered some jokes and funny questions, like if I\u2019m still using punch cards :)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/pl\/blog\/rails-development-z-tmux-vim-fzf-ripgrep\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-24T08:53:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:28:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Rails Development with TMUX, Vim, Fzf + Ripgrep\",\"datePublished\":\"2019-04-24T08:53:32+00:00\",\"dateModified\":\"2026-04-24T11:28:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"},\"wordCount\":894,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\",\"name\":\"Rails Development with TMUX, Vim, Fzf + Ripgrep - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png\",\"datePublished\":\"2019-04-24T08:53:32+00:00\",\"dateModified\":\"2026-04-24T11:28:19+00:00\",\"description\":\"A few years ago, I was grilling with some of my friends, all Java developers. Not sure how it came up, but we started talking about our coding environments. I told them I\u2019m doing all my development using Vim and terminals. It triggered some jokes and funny questions, like if I\u2019m still using punch cards :)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rails Development with TMUX, Vim, Fzf + Ripgrep\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/pl\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rails Development z TMUX, Vim, Fzf + Ripgrep - The Codest","description":"Kilka lat temu grillowa\u0142em z kilkoma moimi przyjaci\u00f3\u0142mi, wszyscy byli programistami Java. Nie jestem pewien, jak do tego dosz\u0142o, ale zacz\u0119li\u015bmy rozmawia\u0107 o naszych \u015brodowiskach programistycznych. Powiedzia\u0142em im, \u017ce ca\u0142y m\u00f3j program tworz\u0119 przy u\u017cyciu Vima i terminali. Wywo\u0142a\u0142o to kilka \u017cart\u00f3w i zabawnych pyta\u0144, np. czy nadal u\u017cywam kart dziurkowanych :)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/pl\/blog\/rails-development-z-tmux-vim-fzf-ripgrep\/","og_locale":"pl_PL","og_type":"article","og_title":"Rails Development with TMUX, Vim, Fzf + Ripgrep","og_description":"A few years ago, I was grilling with some of my friends, all Java developers. Not sure how it came up, but we started talking about our coding environments. I told them I\u2019m doing all my development using Vim and terminals. It triggered some jokes and funny questions, like if I\u2019m still using punch cards :)","og_url":"https:\/\/thecodest.co\/pl\/blog\/rails-development-z-tmux-vim-fzf-ripgrep\/","og_site_name":"The Codest","article_published_time":"2019-04-24T08:53:32+00:00","article_modified_time":"2026-04-24T11:28:19+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Rails Development with TMUX, Vim, Fzf + Ripgrep","datePublished":"2019-04-24T08:53:32+00:00","dateModified":"2026-04-24T11:28:19+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"},"wordCount":894,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png","articleSection":["Software Development"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","url":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","name":"Rails Development z TMUX, Vim, Fzf + Ripgrep - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png","datePublished":"2019-04-24T08:53:32+00:00","dateModified":"2026-04-24T11:28:19+00:00","description":"Kilka lat temu grillowa\u0142em z kilkoma moimi przyjaci\u00f3\u0142mi, wszyscy byli programistami Java. Nie jestem pewien, jak do tego dosz\u0142o, ale zacz\u0119li\u015bmy rozmawia\u0107 o naszych \u015brodowiskach programistycznych. Powiedzia\u0142em im, \u017ce ca\u0142y m\u00f3j program tworz\u0119 przy u\u017cyciu Vima i terminali. Wywo\u0142a\u0142o to kilka \u017cart\u00f3w i zabawnych pyta\u0144, np. czy nadal u\u017cywam kart dziurkowanych :)","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/rails_development_with_tmux-_vim-_fzf_-_ripgrep_2.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Rails Development with TMUX, Vim, Fzf + Ripgrep"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/pl\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/posts\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/posts\/3534\/revisions"}],"predecessor-version":[{"id":7967,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/posts\/3534\/revisions\/7967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/media\/3535"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/media?parent=3534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/categories?post=3534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/pl\/wp-json\/wp\/v2\/tags?post=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}