{"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":"ralsutveckling-med-tmux-vim-fzf-ripgrep","status":"publish","type":"post","link":"https:\/\/thecodest.co\/sv\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","title":{"rendered":"Rails-utveckling med TMUX, Vim, Fzf + Ripgrep"},"content":{"rendered":"<p>Sedan dess har jag provat n\u00e5gra \"riktiga\" IDE:er men alltid kommit tillbaka till <strong>Vim<\/strong> och terminaler eftersom det \u00e4r en mycket snabb metod, har alla de verktyg jag beh\u00f6ver och jag helt enkelt gillar att arbeta i textl\u00e4get.<\/p>\n\n\n\n<p>H\u00e4r \u00e4r n\u00e5gra detaljer om mitt arbetsfl\u00f6de. Det \u00e4r v\u00e4rt att n\u00e4mna att jag arbetar p\u00e5 Linux, men du kan st\u00e4lla in det p\u00e5 Mac eller Windows utan problem.<\/p>\n\n\n\n<p>Jag b\u00f6rjar min arbetsdag med att \u00f6ppna en terminal, cd ~\/Projects\/XYZ och k\u00f6ra <strong>tmux<\/strong>s\u00e5 l\u00e5t oss b\u00f6rja d\u00e4r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TMUX<\/h2>\n\n\n\n<p>Vad \u00e4r <strong>TMUX<\/strong>? Som f\u00f6rfattarna s\u00e4ger:<\/p>\n\n\n\n<p><em>TMUX \u00e4r en terminalmultiplexerare. Med den kan du enkelt v\u00e4xla mellan flera program i en terminal, koppla bort dem (de forts\u00e4tter att k\u00f6ras i bakgrunden) och koppla in dem igen i en annan terminal.<\/em><\/p>\n\n\n\n<p>Jag anv\u00e4nder den f\u00f6r att v\u00e4xla mellan flera saker i en terminal. S\u00e5, i en <strong>TMUX<\/strong> f\u00f6nster, har jag <strong><a href=\"https:\/\/thecodest.co\/sv\/blog\/ways-to-increase-your-rails-performance\/\">R\u00e4ls<\/a> <\/strong>server ig\u00e5ng, i den andra har jag min <strong>Vim<\/strong> \u00f6ppnas, och varje g\u00e5ng jag beh\u00f6ver g\u00f6ra n\u00e5got i terminalen, som att kontrollera rutter, k\u00f6ra migreringar eller tester, \u00f6ppnar jag bara ett nytt f\u00f6nster med <code>CTRL-A C<\/code> och g\u00f6r grejen.<\/p>\n\n\n\n<p>Jag anv\u00e4nder inte <strong>TMUX<\/strong> rutor, bara f\u00f6nster, och g\u00f6r en hel del v\u00e4xlingar (jag har CTRL + dubbel-A bindning f\u00f6r att v\u00e4xla mellan de senaste f\u00f6nstren).<\/p>\n\n\n\n<p>En annan mycket praktisk funktion hos <strong>TMUX<\/strong> \u00e4r att jag kan hitta och kopiera text fr\u00e5n en terminal utan att anv\u00e4nda musen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vim<\/h2>\n\n\n\n<p>Det \u00e4r den viktigaste delen av mitt arbetsfl\u00f6de. Jag kommer inte att g\u00e5 in p\u00e5 detaljer om vad <strong>VIM<\/strong> och hur det skiljer sig fr\u00e5n andra editorer. Det finns m\u00e5nga bra artiklar och videor om det. Med n\u00e5gra f\u00e5 ord, <strong>Vim<\/strong> \u00e4r en modal editor. Den har tv\u00e5 l\u00e4gen, infoga-l\u00e4ge och normalt l\u00e4ge. Insert \u00e4r till f\u00f6r att skriva in text i ett dokument och normal \u00e4r till f\u00f6r att utf\u00f6ra olika operationer p\u00e5 dokumentet, som att flytta mark\u00f6ren, ta bort textfragment, \u00e4ndra i det och s\u00e5 vidare. Det l\u00e5ter konstigt men efter en tid k\u00e4nns det v\u00e4ldigt naturligt och det \u00e4r v\u00e4ldigt sv\u00e5rt att g\u00e5 tillbaka till sin vanliga editor.<\/p>\n\n\n\n<p>Det jag vill visa dig \u00e4r hur jag kombinerar <strong>Vim<\/strong> med andra verktyg f\u00f6r att f\u00e5 allt jag beh\u00f6ver som <a href=\"https:\/\/thecodest.co\/sv\/blog\/find-your-ideal-stack-for-web-development\/\">webb<\/a> <a href=\"https:\/\/thecodest.co\/sv\/blog\/hire-vue-js-developers\/\">utvecklare<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plugins<\/h2>\n\n\n\n<p>Jag \u00e4r inte ett fan av tunga plugin <strong>Vim<\/strong> konfigurationer, s\u00e5 jag anv\u00e4nder bara n\u00e5gra f\u00e5. H\u00e4r \u00e4r listan:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/preservim\/nerdtree\" rel=\"nofollow\">NERDtree<\/a> - det \u00e4r en filutforskare. Det g\u00f6r att du enkelt kan g\u00f6ra n\u00e5gra grundl\u00e4ggande filsystemoperationer, som att flytta filer, byta namn, skapa nya filer och m\u00e5nga andra,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-endwise\" rel=\"nofollow\">vim-endwise<\/a> - Jag \u00e4r en <a href=\"https:\/\/thecodest.co\/sv\/blog\/hire-ror-developer\/\">Ruby<\/a> utvecklare, s\u00e5 jag anv\u00e4nder det f\u00f6r att l\u00e4gga till <code>slut<\/code> efter <code>om<\/code>, <code>g\u00f6ra<\/code>, <code>def<\/code>och flera andra nyckelord,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-rails\" rel=\"nofollow\">vim-rails<\/a> - Det \u00e4r en <strong>R\u00e4ls<\/strong> power plugin. Den k\u00e4nner till strukturen hos en <strong>Rails-applikation<\/strong>. Vill du kontrollera partialen under din mark\u00f6r? Tryck bara p\u00e5 <code>gf<\/code> och det \u00f6ppnar det i ditt nuvarande f\u00f6nster. Det har m\u00e5nga andra alternativ men det \u00e4r det jag anv\u00e4nder oftast,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-surround\" rel=\"nofollow\">vim-surround<\/a> - bra plugin som g\u00f6r det mycket enkelt att arbeta med omgivningar. Med det kan du \u00e4ndra textens omgivning fr\u00e5n () till [] med n\u00e5gra f\u00e5 tangenttryckningar,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-repeat\" rel=\"nofollow\">vim-upprepa <\/a>- komplement till Vim-surround. Det m\u00f6jligg\u00f6r en upprepad f\u00f6r\u00e4ndring av omgivningen med <code>.<\/code> (upprepa den sista \u00e4ndringen i Vim),<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/vimwiki\/vimwiki\" rel=\"nofollow\">vimwiki<\/a>- mitt s\u00e4tt att g\u00f6ra anteckningar,<\/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> - den centrala delen av min <a href=\"https:\/\/thecodest.co\/sv\/blog\/find-your-node-js-expert-for-hire-today\/\">webbutveckling<\/a> arbetsfl\u00f6de.<\/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=\"samarbetsbanner\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fzf + Ripgrep<\/h2>\n\n\n\n<p>Det h\u00e4r \u00e4r de verktyg som definierar hur jag kodar. Jag ins\u00e5g att n\u00e4r jag utf\u00f6r kodningsuppgifter brukar jag \u00e4gna st\u00f6rre delen av min tid \u00e5t att ta reda p\u00e5 hur saker och ting fungerar. F\u00f6r att g\u00f6ra detta m\u00e5ste jag snabbt kontrollera olika delar av kodbasen, metoddefinitioner, klasser och annat.<\/p>\n\n\n\n<p><strong>Fzf<\/strong> \u00e4r ett interaktivt Unix-filter f\u00f6r kommandoraden som kan anv\u00e4ndas med alla listor (filer, kommandohistorik, git-kommiteringar, processlistor); med andra ord \u00e4r det en fuzzy finder.<\/p>\n\n\n\n<p><strong>Ripgrep<\/strong> \u00e4r ett alternativ till grep, men det \u00e4r det blixtsnabba alternativet.<\/p>\n\n\n\n<p>N\u00e4r dessa tv\u00e5 kombineras kan jag snabbt hitta allt jag vill ha i min <a href=\"https:\/\/thecodest.co\/sv\/dictionary\/why-do-projects-fail\/\">projekt<\/a>.<br>Jag har tv\u00e5 inst\u00e4llningar i min <strong>Vim<\/strong> config-fil f\u00f6r att hj\u00e4lpa mig med detta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"vim\" class=\"language-vim\">nnoremap  :Filer\nnnoremap  :Rg<\/code><\/pre>\n\n\n\n<p>Den f\u00f6rsta l\u00e5ter mig snabbt hitta r\u00e4tt filer med hj\u00e4lp av fuzzy finding p\u00e5 fils\u00f6kv\u00e4gar (CTRL-P). Den andra k\u00f6r fuzzy finder p\u00e5 alla s\u00f6kv\u00e4gar och inneh\u00e5ll i filer i mitt projekt med hj\u00e4lp av <strong>Ripgrep<\/strong> (CTRL-F).<\/p>\n\n\n\n<p>L\u00e5t oss s\u00e4ga att jag vill hitta migration d\u00e4r jag lade till en kolumn i <code>anv\u00e4ndare<\/code> bord. Jag trycker p\u00e5 CTRL-F och skriver n\u00e5got i stil med <code>adcolusnam<\/code> och det kommer att matcha <code>add_column :anv\u00e4ndare, :namn, :str\u00e4ng<\/code>.<\/p>\n\n\n\n<p>N\u00e4r jag letar efter en metoddefinition k\u00f6r jag ofta CTRL-F <code>def metod_namn<\/code>.<\/p>\n\n\n\n<p>Det \u00e4r mycket anv\u00e4ndbart eftersom det s\u00f6ker igenom fils\u00f6kv\u00e4g + inneh\u00e5ll. Det \u00e4r s\u00e4rskilt praktiskt n\u00e4r jag vet att det inneh\u00e5ll jag letar efter finns i en viss del av projektet. Jag vill till exempel hitta var vi uppdaterade ett anv\u00e4ndarnamn, och jag minns att det var n\u00e5gonstans i kontrollerna. Jag trycker p\u00e5 <code>CTRL-F<\/code> <code>konupnamn<\/code> f\u00f6r att matcha linje <code>app\/controllers\/users_controller: @user.update(namn: nytt_namn)<\/code>.<\/p>\n\n\n\n<p>Om du k\u00e4nner till strukturen i ditt projekt och din kodbas kan du enkelt konstruera fuzzy find-fr\u00e5gor f\u00f6r att snabbt hitta n\u00e4stan vad du vill.<\/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\">Klicka h\u00e4r <\/a> f\u00f6r att se en kort inspelning av mig n\u00e4r jag leker med kodbasen `discourse` (440k LOC p\u00e5 min i5, 16GB desktop) och visar hur jag brukar flytta runt projektet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sammanfattning<\/h2>\n\n\n\n<p>Jag hoppas att du blev intresserad av min installation och best\u00e4mde dig f\u00f6r att ge <strong>Fzf<\/strong> ett f\u00f6rs\u00f6k i dina kodningsstr\u00e4vanden. Det f\u00f6r\u00e4ndrade verkligen s\u00e4ttet jag anv\u00e4nder <strong>Vim<\/strong> som en <a href=\"https:\/\/thecodest.co\/sv\/dictionary\/what-is-code-refactoring\/\">kod<\/a> redakt\u00f6r.<\/p>","protected":false},"excerpt":{"rendered":"<p>F\u00f6r n\u00e5gra \u00e5r sedan grillade jag med n\u00e5gra av mina v\u00e4nner, alla Java-utvecklare. Vet inte riktigt hur det kom upp, men vi b\u00f6rjade prata om v\u00e5ra kodningsmilj\u00f6er. Jag ber\u00e4ttade att jag g\u00f6r all min utveckling med hj\u00e4lp av Vim och terminaler. Det utl\u00f6ste n\u00e5gra sk\u00e4mt och roliga fr\u00e5gor, som om jag fortfarande anv\u00e4nder h\u00e5lkort \ud83d\ude42 \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=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/sv\/blogg\/ralsutveckling-med-tmux-vim-fzf-ripgrep\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/blogg\/ralsutveckling-med-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 minuter\" \/>\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\":\"sv-SE\",\"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\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@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\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@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\":\"sv-SE\",\"@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\\\/sv\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rails-utveckling med TMUX, Vim, Fzf + Ripgrep - The Codest","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\/sv\/blogg\/ralsutveckling-med-tmux-vim-fzf-ripgrep\/","og_locale":"sv_SE","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\/sv\/blogg\/ralsutveckling-med-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 minuter"},"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":"sv-SE","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-utveckling med 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","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@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":"sv-SE"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@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":"sv-SE","@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\/sv\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/posts\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/posts\/3534\/revisions"}],"predecessor-version":[{"id":7967,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/posts\/3534\/revisions\/7967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/media\/3535"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/media?parent=3534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/categories?post=3534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/sv\/wp-json\/wp\/v2\/tags?post=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}