{"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":"kiskojen-kehittaminen-tmux-vim-fzf-ripgrep-kanssa","status":"publish","type":"post","link":"https:\/\/thecodest.co\/fi\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","title":{"rendered":"Rails-kehitys TMUX, Vim, Fzf + Ripgrep -ohjelmilla"},"content":{"rendered":"<p>Sen j\u00e4lkeen olen kokeillut joitakin \"oikeita\" IDE-ohjelmia, mutta palasin aina takaisin <strong>Vim<\/strong> ja terminaalit, koska se on eritt\u00e4in nopea menetelm\u00e4, siin\u00e4 on kaikki tarvitsemani ty\u00f6kalut ja pid\u00e4n yksinkertaisesti ty\u00f6skentelyst\u00e4 tekstimoodissa.<\/p>\n\n\n\n<p>Seuraavassa on joitakin yksityiskohtia ty\u00f6nkulustani. On syyt\u00e4 mainita, ett\u00e4 ty\u00f6skentelen Linuxilla, mutta voit asentaa sen Macilla tai Windowsilla ilman ongelmia.<\/p>\n\n\n\n<p>Aloitan ty\u00f6p\u00e4iv\u00e4ni avaamalla terminaalin, cd ~\/Projektit\/XYZ ja suorittamalla seuraavan komennon <strong>tmux<\/strong>, joten aloitetaan siit\u00e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TMUX<\/h2>\n\n\n\n<p>Mik\u00e4 on <strong>TMUX<\/strong>? Kuten kirjoittajat sanovat:<\/p>\n\n\n\n<p><em>TMUX on terminaalimultiplekseri. Sen avulla voit helposti vaihtaa useiden ohjelmien v\u00e4lill\u00e4 yhdess\u00e4 p\u00e4\u00e4telaitteessa, irrottaa ne (ne pysyv\u00e4t k\u00e4ynniss\u00e4 taustalla) ja liitt\u00e4\u00e4 ne uudelleen toiseen p\u00e4\u00e4telaitteeseen.<\/em><\/p>\n\n\n\n<p>K\u00e4yt\u00e4n sit\u00e4 vaihtaakseni useiden asioiden v\u00e4lill\u00e4 yhdess\u00e4 p\u00e4\u00e4telaitteessa. Joten yhdess\u00e4 <strong>TMUX<\/strong> ikkunassa, minulla on <strong><a href=\"https:\/\/thecodest.co\/fi\/blog\/ways-to-increase-your-rails-performance\/\">Kiskot<\/a> <\/strong>palvelin k\u00e4ynniss\u00e4, toisessa minulla on minun <strong>Vim<\/strong> avattu, ja aina kun minun t\u00e4ytyy tehd\u00e4 jotain terminaalissa, kuten tarkistaa reittej\u00e4, suorittaa migraatioita tai testej\u00e4, avaan vain uuden ikkunan, jossa lukee <code>CTRL-A C<\/code> ja tee se.<\/p>\n\n\n\n<p>En k\u00e4yt\u00e4 <strong>TMUX<\/strong> ikkunat, vain ikkunat, ja vaihda paljon (minulla on CTRL + double-A sidottu vaihtamaan viimeisten ikkunoiden v\u00e4lill\u00e4).<\/p>\n\n\n\n<p>Toinen eritt\u00e4in k\u00e4tev\u00e4 ominaisuus <strong>TMUX<\/strong> on se, ett\u00e4 sen avulla voin etsi\u00e4 ja kopioida teksti\u00e4 p\u00e4\u00e4telaitteesta ilman hiirt\u00e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vim<\/h2>\n\n\n\n<p>Se on t\u00e4rkein osa ty\u00f6nkulkuani. En aio menn\u00e4 yksityiskohtiin siit\u00e4, mit\u00e4 tapahtuu. <strong>VIM<\/strong> on ja miten se eroaa muista editoreista. Siit\u00e4 on paljon hyvi\u00e4 artikkeleita ja videoita. Muutamalla sanalla, <strong>Vim<\/strong> on modaalinen editori. Siin\u00e4 on kaksi tilaa, insert-tila ja normaali tila. Insert-tilassa voit kirjoittaa teksti\u00e4 asiakirjaan, ja normaalitilassa voit suorittaa asiakirjalle erilaisia toimintoja, kuten siirt\u00e4\u00e4 kursoria, poistaa tekstikappaleita, muuttaa teksti\u00e4 ja niin edelleen. Se kuulostaa oudolta, mutta jonkin ajan kuluttua se tuntuu hyvin luonnolliselta, ja on hyvin vaikea palata takaisin tavalliseen editoriin.<\/p>\n\n\n\n<p>Haluan n\u00e4ytt\u00e4\u00e4 teille, miten yhdist\u00e4n - <strong>Vim<\/strong> muiden ty\u00f6kalujen kanssa saadakseni kaiken tarvitsemani kuin <a href=\"https:\/\/thecodest.co\/fi\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> <a href=\"https:\/\/thecodest.co\/fi\/blog\/hire-vue-js-developers\/\">kehitt\u00e4j\u00e4<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Liit\u00e4nn\u00e4iset<\/h2>\n\n\n\n<p>En pid\u00e4 raskaista lis\u00e4osista <strong>Vim<\/strong> konfiguraatioita, joten k\u00e4yt\u00e4n vain muutamia. T\u00e4ss\u00e4 on luettelo:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/preservim\/nerdtree\" rel=\"nofollow\">NERDtree<\/a> - se on tiedostojen etsint\u00e4ohjelma. Sen avulla voit helposti tehd\u00e4 joitakin tiedostoj\u00e4rjestelm\u00e4n perustoimintoja, kuten siirt\u00e4\u00e4 tiedostoja, nimet\u00e4 niit\u00e4 uudelleen, luoda uusia tiedostoja ja monia muita,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-endwise\" rel=\"nofollow\">vim-endwise<\/a> - Olen <a href=\"https:\/\/thecodest.co\/fi\/blog\/hire-ror-developer\/\">Ruby<\/a> kehitt\u00e4j\u00e4, joten k\u00e4yt\u00e4n sit\u00e4 lis\u00e4\u00e4m\u00e4\u00e4n <code>end<\/code> j\u00e4lkeen <code>jos<\/code>, <code>tee<\/code>, <code>def<\/code>ja useita muita avainsanoja,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-rails\" rel=\"nofollow\">vim-rails<\/a> - se on <strong>Kiskot<\/strong> virtaliit\u00e4nt\u00e4. Se tuntee rakenteen <strong>Rails-sovellus<\/strong>. Haluatko tarkistaa kursorin alla olevan osittaisen? Paina vain <code>gf<\/code> ja se avautuu nykyiseen ikkunaan. Siin\u00e4 on monia muitakin vaihtoehtoja, mutta k\u00e4yt\u00e4n sit\u00e4 useimmiten,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-surround\" rel=\"nofollow\">vim-surround<\/a> - loistava lis\u00e4osa, joka tekee ty\u00f6skentelyst\u00e4 ymp\u00e4rist\u00f6n kanssa eritt\u00e4in helppoa. Sen avulla voit vaihtaa tekstin ymp\u00e4rist\u00f6n ():sta []:ksi muutamalla n\u00e4pp\u00e4imen painalluksella,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-repeat\" rel=\"nofollow\">vim-repeat <\/a>- t\u00e4ydent\u00e4\u00e4 Vim-surroundia. Se mahdollistaa toistuvan ymp\u00e4r\u00f6iv\u00e4n muutoksen <code>.<\/code> (toista viimeinen muutos Vimiss\u00e4),<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/vimwiki\/vimwiki\" rel=\"nofollow\">vimwiki<\/a>- tapani tehd\u00e4 muistiinpanoja,<\/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> - keskeinen osa minun <a href=\"https:\/\/thecodest.co\/fi\/blog\/find-your-node-js-expert-for-hire-today\/\">web-kehitys<\/a> ty\u00f6nkulku.<\/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=\"yhteisty\u00f6banneri\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fzf + Ripgrep<\/h2>\n\n\n\n<p>N\u00e4m\u00e4 ovat ty\u00f6kaluja, jotka m\u00e4\u00e4rittelev\u00e4t tapani tehd\u00e4 koodausta. Tajusin, ett\u00e4 yleens\u00e4 kun teen koodausteht\u00e4vi\u00e4, k\u00e4yt\u00e4n suurimman osan ajastani siihen, ett\u00e4 selvit\u00e4n, miten asiat toimivat. T\u00e4t\u00e4 varten minun on tarkistettava nopeasti koodipohjan eri osat, metodim\u00e4\u00e4ritykset, luokat ja muut asiat.<\/p>\n\n\n\n<p><strong>Fzf<\/strong> on interaktiivinen Unix-suodatin komentoriville, jota voidaan k\u00e4ytt\u00e4\u00e4 mink\u00e4 tahansa luettelon kanssa (tiedostot, komentohistoria, git-kommitit, prosessiluettelot); toisin sanoen se on sumea etsij\u00e4.<\/p>\n\n\n\n<p><strong>Ripgrep<\/strong> on vaihtoehto grep:lle, mutta se on se kaikkein nopein.<\/p>\n\n\n\n<p>Kun n\u00e4m\u00e4 kaksi yhdistet\u00e4\u00e4n, l\u00f6yd\u00e4n nopeasti kaiken haluamani omasta <a href=\"https:\/\/thecodest.co\/fi\/dictionary\/why-do-projects-fail\/\">projekti<\/a>.<br>Minulla on kaksi asetusta <strong>Vim<\/strong> config-tiedosto auttaa minua t\u00e4ss\u00e4:<\/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>Ensimm\u00e4isen avulla l\u00f6ysin nopeasti oikeat tiedostot k\u00e4ytt\u00e4m\u00e4ll\u00e4 tiedostopolkujen sumeaa hakua (CTRL-P). Toinen k\u00e4ytt\u00e4\u00e4 sumeaa etsimist\u00e4 kaikkiin projektini tiedostopolkuihin ja tiedostojen sis\u00e4lt\u00f6\u00f6n k\u00e4ytt\u00e4m\u00e4ll\u00e4 seuraavia komentoja <strong>Ripgrep<\/strong> (CTRL-F).<\/p>\n\n\n\n<p>Sanotaan, ett\u00e4 haluan etsi\u00e4 muuttoliikett\u00e4, jossa lis\u00e4sin sarakkeen sarakkeeseen <code>k\u00e4ytt\u00e4j\u00e4t<\/code> p\u00f6yt\u00e4. Painan CTRL-F-n\u00e4pp\u00e4int\u00e4 ja kirjoitan jotain seuraavanlaista <code>adcolusnam<\/code> ja se vastaa <code>add_column :users, :name, :string<\/code>.<\/p>\n\n\n\n<p>Kun etsin metodin m\u00e4\u00e4ritelm\u00e4\u00e4, k\u00e4yt\u00e4n usein CTRL-F-merkki\u00e4 <code>def metodin_nimi<\/code>.<\/p>\n\n\n\n<p>Se on eritt\u00e4in hy\u00f6dyllinen, koska se etsii tiedostopolun + sis\u00e4ll\u00f6n kautta. Se on erityisen k\u00e4tev\u00e4\u00e4, kun tied\u00e4n, ett\u00e4 etsim\u00e4ni sis\u00e4lt\u00f6 on tietyss\u00e4 projektin osassa. Haluan esimerkiksi l\u00f6yt\u00e4\u00e4, miss\u00e4 p\u00e4ivitimme k\u00e4ytt\u00e4j\u00e4tunnuksen, ja muistan sen olleen jossain ohjaimissa. Painan <code>CTRL-F<\/code> <code>conupdname<\/code> vastaamaan rivi\u00e4 <code>app\/controllers\/users_controller: @user.update(nimi: uusi_nimi): @user.update(nimi: uusi_nimi)<\/code>.<\/p>\n\n\n\n<p>Jos tunnet projektisi ja koodipohjasi rakenteen, voit helposti laatia sumeat hakukyselyt, joiden avulla voit l\u00f6yt\u00e4\u00e4 nopeasti l\u00e4hes mit\u00e4 tahansa haluamaasi.<\/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\">Klikkaa t\u00e4st\u00e4 <\/a> n\u00e4hd\u00e4ksesi lyhyen nauhoituksen, jossa leikittelen `discourse`-koodipohjan kanssa (440k LOC i5:ll\u00e4, 16GB:n ty\u00f6p\u00f6yd\u00e4ll\u00e4) ja n\u00e4yt\u00e4n, miten yleens\u00e4 liikun projektissa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Yhteenveto<\/h2>\n\n\n\n<p>Toivottavasti olet kiinnostunut minun setup ja p\u00e4\u00e4tti antaa <strong>Fzf<\/strong> kokeilla koodauspyrkimyksi\u00e4si. Se todella muutti tapaa, jolla k\u00e4yt\u00e4n <strong>Vim<\/strong> kuin <a href=\"https:\/\/thecodest.co\/fi\/dictionary\/what-is-code-refactoring\/\">koodi<\/a> toimittaja.<\/p>","protected":false},"excerpt":{"rendered":"<p>Muutama vuosi sitten grillailin yst\u00e4vieni kanssa, jotka olivat kaikki Java-kehitt\u00e4ji\u00e4. En ole varma, miten asia tuli puheeksi, mutta aloimme puhua koodausymp\u00e4rist\u00f6ist\u00e4mme. Kerroin heille, ett\u00e4 teen kaiken kehitysty\u00f6ni Vimill\u00e4 ja terminaaleilla. Se her\u00e4tti vitsej\u00e4 ja hauskoja kysymyksi\u00e4, kuten k\u00e4yt\u00e4nk\u00f6 yh\u00e4 reik\u00e4kortteja \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\/fi\/blogi\/kiskojen-kehittaminen-tmux-vim-fzf-ripgrep-kanssa\/\" \/>\n<meta property=\"og:locale\" content=\"fi_FI\" \/>\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\/fi\/blogi\/kiskojen-kehittaminen-tmux-vim-fzf-ripgrep-kanssa\/\" \/>\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 minuuttia\" \/>\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\":\"fi\",\"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\":\"fi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@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\":\"fi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@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\":\"fi\",\"@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\\\/fi\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kiskot kehitys TMUX, Vim, Fzf + Ripgrep - Codest","description":"Muutama vuosi sitten grillailin yst\u00e4vieni kanssa, jotka olivat kaikki Java-kehitt\u00e4ji\u00e4. En ole varma, miten asia tuli puheeksi, mutta aloimme puhua koodausymp\u00e4rist\u00f6ist\u00e4mme. Kerroin heille, ett\u00e4 teen kaiken kehitysty\u00f6ni Vimill\u00e4 ja terminaaleilla. Se her\u00e4tti vitsej\u00e4 ja hauskoja kysymyksi\u00e4, kuten k\u00e4yt\u00e4nk\u00f6 yh\u00e4 reik\u00e4kortteja :)","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\/fi\/blogi\/kiskojen-kehittaminen-tmux-vim-fzf-ripgrep-kanssa\/","og_locale":"fi_FI","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\/fi\/blogi\/kiskojen-kehittaminen-tmux-vim-fzf-ripgrep-kanssa\/","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 minuuttia"},"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":"fi","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":"Kiskot kehitys TMUX, Vim, Fzf + Ripgrep - 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":"Muutama vuosi sitten grillailin yst\u00e4vieni kanssa, jotka olivat kaikki Java-kehitt\u00e4ji\u00e4. En ole varma, miten asia tuli puheeksi, mutta aloimme puhua koodausymp\u00e4rist\u00f6ist\u00e4mme. Kerroin heille, ett\u00e4 teen kaiken kehitysty\u00f6ni Vimill\u00e4 ja terminaaleilla. Se her\u00e4tti vitsej\u00e4 ja hauskoja kysymyksi\u00e4, kuten k\u00e4yt\u00e4nk\u00f6 yh\u00e4 reik\u00e4kortteja :)","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb"},"inLanguage":"fi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"]}]},{"@type":"ImageObject","inLanguage":"fi","@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":"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":"fi"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"fi","@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":"fi","@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\/fi\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/posts\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/posts\/3534\/revisions"}],"predecessor-version":[{"id":7967,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/posts\/3534\/revisions\/7967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/media\/3535"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/media?parent=3534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/categories?post=3534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/fi\/wp-json\/wp\/v2\/tags?post=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}