{"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":"vyvoj-na-kolejnicich-pomoci-tmux-vim-fzf-ripgrep","status":"publish","type":"post","link":"https:\/\/thecodest.co\/cs\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","title":{"rendered":"V\u00fdvoj Rails pomoc\u00ed TMUX, Vim, Fzf + Ripgrep"},"content":{"rendered":"<p>Od t\u00e9 doby jsem vyzkou\u0161el n\u011bkolik \"opravdov\u00fdch\" IDE, ale v\u017edy jsem se vr\u00e1til k. <strong>Vim<\/strong> a termin\u00e1ly, proto\u017ee je to velmi rychl\u00e1 metoda, m\u00e1 v\u0161echny n\u00e1stroje, kter\u00e9 pot\u0159ebuji, a jednodu\u0161e se mi l\u00edb\u00ed pr\u00e1ce v textov\u00e9m re\u017eimu.<\/p>\n\n\n\n<p>Zde je n\u011bkolik podrobnost\u00ed o m\u00e9m pracovn\u00edm postupu. Stoj\u00ed za zm\u00ednku, \u017ee pracuji v Linuxu, ale bez probl\u00e9m\u016f si to m\u016f\u017eete nastavit i na Macu nebo Windows.<\/p>\n\n\n\n<p>Sv\u016fj pracovn\u00ed den za\u010d\u00edn\u00e1m otev\u0159en\u00edm termin\u00e1lu, cd ~\/Projects\/XYZ a spu\u0161t\u011bn\u00edm p\u0159\u00edkazu <strong>tmux<\/strong>, tak\u017ee za\u010dn\u011bme tam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TMUX<\/h2>\n\n\n\n<p>Co je to <strong>TMUX<\/strong>? Jak \u0159\u00edkaj\u00ed auto\u0159i:<\/p>\n\n\n\n<p><em>TMUX je termin\u00e1lov\u00fd multiplexor. Umo\u017e\u0148uje snadno p\u0159ep\u00ednat mezi n\u011bkolika programy v jednom termin\u00e1lu, odpojit je (b\u011b\u017e\u00ed d\u00e1l na pozad\u00ed) a znovu je p\u0159ipojit k jin\u00e9mu termin\u00e1lu.<\/em><\/p>\n\n\n\n<p>Pou\u017e\u00edv\u00e1m ho k p\u0159ep\u00edn\u00e1n\u00ed mezi v\u00edce v\u011bcmi v jednom termin\u00e1lu. Tak\u017ee v jednom <strong>TMUX<\/strong> okno, m\u00e1m <strong><a href=\"https:\/\/thecodest.co\/cs\/blog\/ways-to-increase-your-rails-performance\/\">Rails<\/a> <\/strong>server b\u011b\u017e\u00ed, ve druh\u00e9m m\u00e1m sv\u016fj <strong>Vim<\/strong> a poka\u017ed\u00e9, kdy\u017e pot\u0159ebuji n\u011bco ud\u011blat v termin\u00e1lu, nap\u0159\u00edklad zkontrolovat trasy, spustit migraci nebo testy, prost\u011b otev\u0159u nov\u00e9 okno s polo\u017ekou <code>CTRL-A C<\/code> a ud\u011blejte to.<\/p>\n\n\n\n<p>Nepou\u017e\u00edv\u00e1m <strong>TMUX<\/strong> panely, pouze okna, a hodn\u011b p\u0159ep\u00ednat (m\u00e1m CTRL + double-A v\u00e1zan\u00e9 na p\u0159ep\u00edn\u00e1n\u00ed mezi posledn\u00edmi okny).<\/p>\n\n\n\n<p>Dal\u0161\u00ed velmi v\u00fdhodnou funkc\u00ed <strong>TMUX<\/strong> \u017ee mi umo\u017e\u0148uje vyhled\u00e1vat a kop\u00edrovat text z termin\u00e1lu bez pou\u017eit\u00ed my\u0161i.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vim<\/h2>\n\n\n\n<p>Je to hlavn\u00ed \u010d\u00e1st m\u00e9ho pracovn\u00edho postupu. Nebudu zab\u00edhat do podrobnost\u00ed o tom, co je to <strong>VIM<\/strong> a v \u010dem se li\u0161\u00ed od ostatn\u00edch editor\u016f. Je o n\u011bm spousta skv\u011bl\u00fdch \u010dl\u00e1nk\u016f a vide\u00ed. N\u011bkolika slovy, <strong>Vim<\/strong> je mod\u00e1ln\u00ed editor. M\u00e1 dva re\u017eimy, re\u017eim vkl\u00e1d\u00e1n\u00ed a norm\u00e1ln\u00ed re\u017eim. Re\u017eim Insert slou\u017e\u00ed k psan\u00ed textu do dokumentu a norm\u00e1ln\u00ed re\u017eim slou\u017e\u00ed k prov\u00e1d\u011bn\u00ed r\u016fzn\u00fdch operac\u00ed s dokumentem, jako je p\u0159esouv\u00e1n\u00ed kurzoru, maz\u00e1n\u00ed fragment\u016f textu, jeho zm\u011bna atd. Zn\u00ed to zvl\u00e1\u0161tn\u011b, ale po n\u011bjak\u00e9 dob\u011b to p\u016fsob\u00ed velmi p\u0159irozen\u011b a je velmi t\u011b\u017ek\u00e9 vr\u00e1tit se k b\u011b\u017en\u00e9mu editoru.<\/p>\n\n\n\n<p>Cht\u011bl bych v\u00e1m uk\u00e1zat, jak kombinuji <strong>Vim<\/strong> s dal\u0161\u00edmi n\u00e1stroji, abych z\u00edskal v\u0161e, co pot\u0159ebuji jako <a href=\"https:\/\/thecodest.co\/cs\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> <a href=\"https:\/\/thecodest.co\/cs\/blog\/hire-vue-js-developers\/\">v\u00fdvoj\u00e1\u0159<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Z\u00e1suvn\u00e9 moduly<\/h2>\n\n\n\n<p>Nejsem fanou\u0161kem t\u011b\u017ek\u00fdch z\u00e1suvn\u00fdch modul\u016f <strong>Vim<\/strong> konfigurac\u00ed, tak\u017ee pou\u017e\u00edv\u00e1m jen n\u011bkolik z nich. Zde je jejich seznam:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/preservim\/nerdtree\" rel=\"nofollow\">NERDtree<\/a> - je to pr\u016fzkumn\u00edk soubor\u016f. Umo\u017e\u0148uje snadno prov\u00e1d\u011bt z\u00e1kladn\u00ed operace se souborov\u00fdm syst\u00e9mem, jako je p\u0159esouv\u00e1n\u00ed soubor\u016f, p\u0159ejmenov\u00e1n\u00ed, vytv\u00e1\u0159en\u00ed nov\u00fdch soubor\u016f a mnoho dal\u0161\u00edch,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-endwise\" rel=\"nofollow\">vim-endwise<\/a> - Jsem <a href=\"https:\/\/thecodest.co\/cs\/blog\/hire-ror-developer\/\">Ruby<\/a> v\u00fdvoj\u00e1\u0159, tak\u017ee ho pou\u017e\u00edv\u00e1m k p\u0159id\u00e1n\u00ed <code>konec<\/code> po <code>pokud<\/code>, <code>do<\/code>, <code>def<\/code>a n\u011bkolik dal\u0161\u00edch kl\u00ed\u010dov\u00fdch slov,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-rails\" rel=\"nofollow\">vim-rails<\/a> - je to <strong>Rails<\/strong> z\u00e1suvn\u00fd modul nap\u00e1jen\u00ed. Zn\u00e1 strukturu <strong>Aplikace Rails<\/strong>. Chcete zkontrolovat d\u00edl\u010d\u00ed \u010d\u00e1st pod kurzorem? Sta\u010d\u00ed stisknout <code>gf<\/code> a otev\u0159e se v aktu\u00e1ln\u00edm okn\u011b. M\u00e1 mnoho dal\u0161\u00edch mo\u017enost\u00ed, ale tuhle pou\u017e\u00edv\u00e1m nej\u010dast\u011bji,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-surround\" rel=\"nofollow\">vim-surround<\/a> - skv\u011bl\u00fd plugin, kter\u00fd velmi usnad\u0148uje pr\u00e1ci s okol\u00edm. Pomoc\u00ed n\u011bj m\u016f\u017eete zm\u011bnit okol\u00ed textu z () na [] pomoc\u00ed n\u011bkolika stisk\u016f kl\u00e1ves,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-repeat\" rel=\"nofollow\">vim-repeat <\/a>- dopl\u0148uj\u00edc\u00ed Vim-surround. Umo\u017e\u0148uje opakuj\u00edc\u00ed se zm\u011bnu prost\u0159ed\u00ed s <code>.<\/code> (zopakujte posledn\u00ed zm\u011bnu ve Vimu),<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/vimwiki\/vimwiki\" rel=\"nofollow\">vimwiki<\/a>- m\u016fj zp\u016fsob, jak si d\u011blat pozn\u00e1mky,<\/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> - hlavn\u00ed \u010d\u00e1st m\u00e9ho <a href=\"https:\/\/thecodest.co\/cs\/blog\/find-your-node-js-expert-for-hire-today\/\">v\u00fdvoj webov\u00fdch str\u00e1nek<\/a> pracovn\u00ed postup.<\/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=\"banner spolupr\u00e1ce\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fzf + Ripgrep<\/h2>\n\n\n\n<p>To jsou n\u00e1stroje, kter\u00e9 ur\u010duj\u00ed zp\u016fsob, jak\u00fdm k\u00f3duji. Uv\u011bdomil jsem si, \u017ee kdy\u017e d\u011bl\u00e1m n\u011bjakou k\u00f3dovac\u00ed \u00falohu, v\u011bt\u0161inu \u010dasu obvykle v\u011bnuji zji\u0161\u0165ov\u00e1n\u00ed, jak dan\u00e1 v\u011bc funguje. K tomu pot\u0159ebuji rychle zkontrolovat r\u016fzn\u00e9 \u010d\u00e1sti k\u00f3dov\u00e9 z\u00e1kladny, definice metod, t\u0159\u00edd a dal\u0161\u00ed v\u011bci.<\/p>\n\n\n\n<p><strong>Fzf<\/strong> je interaktivn\u00ed unixov\u00fd filtr pro p\u0159\u00edkazov\u00fd \u0159\u00e1dek, kter\u00fd lze pou\u017e\u00edt s libovoln\u00fdmi seznamy (soubory, historie p\u0159\u00edkaz\u016f, revize git, seznamy proces\u016f); jin\u00fdmi slovy, je to fuzzy vyhled\u00e1va\u010d.<\/p>\n\n\n\n<p><strong>Ripgrep<\/strong> je alternativou ke grepu, ale je to ten nejrychlej\u0161\u00ed.<\/p>\n\n\n\n<p>Po jejich spojen\u00ed mohu rychle naj\u00edt cokoli, co chci. <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/why-do-projects-fail\/\">projekt<\/a>.<br>M\u00e1m dv\u011b nastaven\u00ed <strong>Vim<\/strong> konfigura\u010dn\u00ed soubor, kter\u00fd mi s t\u00edm pom\u016f\u017ee:<\/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>Prvn\u00ed z nich mi umo\u017enil rychle naj\u00edt spr\u00e1vn\u00e9 soubory pomoc\u00ed fuzzy vyhled\u00e1v\u00e1n\u00ed cest k soubor\u016fm (CTRL-P). Druh\u00fd spust\u00ed fuzzy vyhled\u00e1v\u00e1n\u00ed na v\u0161ech cest\u00e1ch a obsahu soubor\u016f v m\u00e9m projektu pomoc\u00ed funkce <strong>Ripgrep<\/strong> (CTRL-F).<\/p>\n\n\n\n<p>\u0158ekn\u011bme, \u017ee chci naj\u00edt migraci, kde jsem p\u0159idal sloupec do pole <code>u\u017eivatel\u00e9<\/code> tabulka. Stisknu CTRL-F a nap\u00ed\u0161u n\u011bco jako <code>adcolusnam<\/code> a bude odpov\u00eddat <code>add_column :users, :name, :string<\/code>.<\/p>\n\n\n\n<p>Kdy\u017e hled\u00e1m definici metody, \u010dasto spust\u00edm CTRL-F. <code>def n\u00e1zev_metody<\/code>.<\/p>\n\n\n\n<p>Je velmi u\u017eite\u010dn\u00fd, proto\u017ee prohled\u00e1v\u00e1 cestu k souboru + obsah. Je to v\u00fdhodn\u00e9 zejm\u00e9na tehdy, kdy\u017e v\u00edm, \u017ee hledan\u00fd obsah se nach\u00e1z\u00ed v ur\u010dit\u00e9 \u010d\u00e1sti projektu. Nap\u0159\u00edklad chci naj\u00edt, kde jsme aktualizovali u\u017eivatelsk\u00e9 jm\u00e9no, a pamatuji si, \u017ee to bylo n\u011bkde v ovlada\u010d\u00edch. Stisknu tla\u010d\u00edtko <code>CTRL-F<\/code> <code>conupdname<\/code> aby odpov\u00eddala \u0159\u00e1dku <code>app\/controllers\/users_controller: @user.update(name: new_name)<\/code>.<\/p>\n\n\n\n<p>Pokud zn\u00e1te strukturu sv\u00e9ho projektu a k\u00f3dov\u00e9 z\u00e1kladny, m\u016f\u017eete snadno sestavit fuzzy vyhled\u00e1vac\u00ed dotazy a rychle naj\u00edt t\u00e9m\u011b\u0159 cokoli, co chcete.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Video<\/h2>\n\n\n\n<p><a href=\"https:\/\/youtu.be\/yJWl4CfvMC8\" rel=\"nofollow\">Klikn\u011bte zde <\/a> kr\u00e1tk\u00fd z\u00e1znam, na kter\u00e9m si hraji s k\u00f3dovou z\u00e1kladnou `discourse` (440k LOC na m\u00e9m i5, 16GB desktopu) a ukazuji, jak se v projektu obvykle pohybuji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Souhrn<\/h2>\n\n\n\n<p>Douf\u00e1m, \u017ee v\u00e1s zaujalo m\u00e9 nastaven\u00ed a rozhodli jste se d\u00e1t <strong>Fzf<\/strong> vyzkou\u0161et p\u0159i sv\u00e9m k\u00f3dov\u00e1n\u00ed. Opravdu to zm\u011bnilo zp\u016fsob, jak\u00fdm pou\u017e\u00edv\u00e1m <strong>Vim<\/strong> jako <a href=\"https:\/\/thecodest.co\/cs\/dictionary\/what-is-code-refactoring\/\">k\u00f3d<\/a> editor.<\/p>","protected":false},"excerpt":{"rendered":"<p>P\u0159ed n\u011bkolika lety jsem griloval se sv\u00fdmi p\u0159\u00e1teli, sam\u00fdmi v\u00fdvoj\u00e1\u0159i v Jav\u011b. Nejsem si jist\u00fd, jak k tomu do\u0161lo, ale za\u010dali jsme se bavit o na\u0161ich k\u00f3dovac\u00edch prost\u0159ed\u00edch. \u0158ekl jsem jim, \u017ee ve\u0161ker\u00fd v\u00fdvoj prov\u00e1d\u00edm pomoc\u00ed Vimu a termin\u00e1l\u016f. Vyvolalo to n\u011bkolik vtip\u016f a vtipn\u00fdch ot\u00e1zek, nap\u0159\u00edklad jestli je\u0161t\u011b pou\u017e\u00edv\u00e1m d\u011brn\u00e9 \u0161t\u00edtky \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\/cs\/blog\/vyvoj-na-kolejnicich-pomoci-tmux-vim-fzf-ripgrep\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/blog\/vyvoj-na-kolejnicich-pomoci-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\":\"cs\",\"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\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@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\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@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\":\"cs\",\"@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\\\/cs\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"V\u00fdvoj Rails pomoc\u00ed TMUX, Vim, Fzf + Ripgrep - The Codest","description":"P\u0159ed n\u011bkolika lety jsem griloval se sv\u00fdmi p\u0159\u00e1teli, sam\u00fdmi v\u00fdvoj\u00e1\u0159i v Jav\u011b. Nejsem si jist\u00fd, jak k tomu do\u0161lo, ale za\u010dali jsme se bavit o na\u0161ich k\u00f3dovac\u00edch prost\u0159ed\u00edch. \u0158ekl jsem jim, \u017ee ve\u0161ker\u00fd v\u00fdvoj prov\u00e1d\u00edm pomoc\u00ed Vimu a termin\u00e1l\u016f. Vyvolalo to n\u011bkolik vtip\u016f a vtipn\u00fdch ot\u00e1zek, nap\u0159\u00edklad jestli je\u0161t\u011b pou\u017e\u00edv\u00e1m d\u011brn\u00e9 \u0161t\u00edtky :) A tak jsem se zeptal, jestli se mi to l\u00edb\u00ed.","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\/cs\/blog\/vyvoj-na-kolejnicich-pomoci-tmux-vim-fzf-ripgrep\/","og_locale":"cs_CZ","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\/cs\/blog\/vyvoj-na-kolejnicich-pomoci-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":"cs","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":"V\u00fdvoj Rails pomoc\u00ed 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":"P\u0159ed n\u011bkolika lety jsem griloval se sv\u00fdmi p\u0159\u00e1teli, sam\u00fdmi v\u00fdvoj\u00e1\u0159i v Jav\u011b. Nejsem si jist\u00fd, jak k tomu do\u0161lo, ale za\u010dali jsme se bavit o na\u0161ich k\u00f3dovac\u00edch prost\u0159ed\u00edch. \u0158ekl jsem jim, \u017ee ve\u0161ker\u00fd v\u00fdvoj prov\u00e1d\u00edm pomoc\u00ed Vimu a termin\u00e1l\u016f. Vyvolalo to n\u011bkolik vtip\u016f a vtipn\u00fdch ot\u00e1zek, nap\u0159\u00edklad jestli je\u0161t\u011b pou\u017e\u00edv\u00e1m d\u011brn\u00e9 \u0161t\u00edtky :) A tak jsem se zeptal, jestli se mi to l\u00edb\u00ed.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@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":"cs"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"cs","@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":"cs","@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\/cs\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3534\/revisions"}],"predecessor-version":[{"id":7967,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/posts\/3534\/revisions\/7967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media\/3535"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/media?parent=3534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/categories?post=3534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/cs\/wp-json\/wp\/v2\/tags?post=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}