{"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-utvikling-med-tmux-vim-fzf-ripgrep","status":"publish","type":"post","link":"https:\/\/thecodest.co\/nb\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/","title":{"rendered":"Rails-utvikling med TMUX, Vim, Fzf + Ripgrep"},"content":{"rendered":"<p>Siden den gang har jeg pr\u00f8vd noen \"ekte\" IDE-er, men kom alltid tilbake til <strong>Vim<\/strong> og terminaler, siden det er en veldig rask metode, har alle verkt\u00f8yene jeg trenger, og jeg liker rett og slett \u00e5 jobbe i tekstmodus.<\/p>\n\n\n\n<p>Her er noen detaljer om arbeidsflyten min. Det er verdt \u00e5 nevne at jeg jobber p\u00e5 Linux, men du kan uten problemer sette det opp p\u00e5 Mac eller Windows.<\/p>\n\n\n\n<p>Jeg starter arbeidsdagen med \u00e5 \u00e5pne en terminal, cd ~\/Projects\/XYZ, og kj\u00f8rer <strong>tmux<\/strong>s\u00e5 la oss begynne der.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TMUX<\/h2>\n\n\n\n<p>Hva er <strong>TMUX<\/strong>? Som forfatterne sier:<\/p>\n\n\n\n<p><em>TMUX er en terminalmultiplekser. Den lar deg enkelt veksle mellom flere programmer i \u00e9n terminal, koble dem fra hverandre (de fortsetter \u00e5 kj\u00f8re i bakgrunnen) og koble dem til en annen terminal.<\/em><\/p>\n\n\n\n<p>Jeg bruker den til \u00e5 veksle mellom flere ting i \u00e9n terminal. S\u00e5 i en <strong>TMUX<\/strong> vinduet, har jeg <strong><a href=\"https:\/\/thecodest.co\/nb\/blog\/ways-to-increase-your-rails-performance\/\">Rails<\/a> <\/strong>serveren kj\u00f8rer, i den andre har jeg min <strong>Vim<\/strong> \u00e5pnet, og hver gang jeg trenger \u00e5 gj\u00f8re noe i terminalen, som \u00e5 sjekke ruter, kj\u00f8re migreringer eller tester, \u00e5pner jeg bare et nytt vindu med <code>CTRL-A C<\/code> og gj\u00f8r greia.<\/p>\n\n\n\n<p>Jeg bruker ikke <strong>TMUX<\/strong> ruter, bare vinduer, og bytter mye (jeg har CTRL + dobbelt-A bundet til \u00e5 bytte mellom de siste vinduene).<\/p>\n\n\n\n<p>En annen veldig praktisk funksjon ved <strong>TMUX<\/strong> er at jeg kan finne og kopiere tekst fra en terminal uten \u00e5 bruke musen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vim<\/h2>\n\n\n\n<p>Det er hoveddelen av arbeidsflyten min. Jeg kommer ikke til \u00e5 g\u00e5 i detalj om hva <strong>VIM<\/strong> er og hvordan det skiller seg fra andre redigeringsprogrammer. Det finnes mange gode artikler og videoer om det. Med noen f\u00e5 ord, <strong>Vim<\/strong> er en modal editor. Den har to moduser, innsettingsmodus og normalmodus. I Insert-modus kan du skrive inn tekst i et dokument, og i normalmodus kan du utf\u00f8re ulike operasjoner p\u00e5 dokumentet, for eksempel flytte mark\u00f8ren, slette tekstfragmenter, endre tekst osv. Det h\u00f8res rart ut, men etter en stund f\u00f8les det veldig naturlig, og det er veldig vanskelig \u00e5 g\u00e5 tilbake til den vanlige editoren.<\/p>\n\n\n\n<p>Det jeg vil vise deg, er hvordan jeg kombinerer <strong>Vim<\/strong> med andre verkt\u00f8y for \u00e5 f\u00e5 alt jeg trenger som <a href=\"https:\/\/thecodest.co\/nb\/blog\/find-your-ideal-stack-for-web-development\/\">nett<\/a> <a href=\"https:\/\/thecodest.co\/nb\/blog\/hire-vue-js-developers\/\">utvikler<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plugins<\/h2>\n\n\n\n<p>Jeg er ikke tilhenger av tunge plugins <strong>Vim<\/strong> konfigurasjoner, s\u00e5 jeg bruker bare noen f\u00e5. Her er listen:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/preservim\/nerdtree\" rel=\"nofollow\">NERDtree<\/a> - Det er en filutforsker. Den lar deg enkelt utf\u00f8re noen grunnleggende filsystemoperasjoner, som \u00e5 flytte filer, endre navn, opprette nye filer og mye annet,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-endwise\" rel=\"nofollow\">vim-endwise<\/a> - Jeg er en <a href=\"https:\/\/thecodest.co\/nb\/blog\/hire-ror-developer\/\">Ruby<\/a> utvikler, s\u00e5 jeg bruker den til \u00e5 legge til <code>slutt<\/code> etter <code>hvis<\/code>, <code>gj\u00f8re<\/code>, <code>def<\/code>og flere andre n\u00f8kkelord,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-rails\" rel=\"nofollow\">vim-skinner<\/a> - det er en <strong>Rails<\/strong> power-plugin. Den kjenner strukturen til en <strong>Rails-app<\/strong>. Vil du sjekke den partielle delen under mark\u00f8ren? Bare trykk p\u00e5 <code>gf<\/code> og den \u00e5pnes i det aktuelle vinduet. Den har mange andre alternativer, men det er det jeg bruker oftest,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-surround\" rel=\"nofollow\">vim-surround<\/a> - flott plugin som gj\u00f8r det veldig enkelt \u00e5 jobbe med omgivelser. Med den kan du endre tekstens omgivelser fra () til [] med noen f\u00e5 tastetrykk,<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/tpope\/vim-repeat\" rel=\"nofollow\">vim-repeat <\/a>- komplement\u00e6r til Vim-surround. Det gj\u00f8r det mulig \u00e5 endre omgivelsene gjentatte ganger med <code>.<\/code> (gjenta siste endring i Vim),<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/vimwiki\/vimwiki\" rel=\"nofollow\">vimwiki<\/a>- min m\u00e5te \u00e5 ta notater p\u00e5,<\/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 sentrale delen av min <a href=\"https:\/\/thecodest.co\/nb\/blog\/find-your-node-js-expert-for-hire-today\/\">webutvikling<\/a> arbeidsflyt.<\/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=\"samarbeidsbanner\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Fzf + Ripgrep<\/h2>\n\n\n\n<p>Dette er verkt\u00f8yene som definerer m\u00e5ten jeg koder p\u00e5. Jeg har innsett at n\u00e5r jeg jobber med koding, bruker jeg vanligvis mesteparten av tiden min p\u00e5 \u00e5 finne ut hvordan ting fungerer. For \u00e5 gj\u00f8re dette m\u00e5 jeg raskt sjekke ulike deler av kodebasen, metodedefinisjoner, klasser og andre ting.<\/p>\n\n\n\n<p><strong>Fzf<\/strong> er et interaktivt Unix-filter for kommandolinjen som kan brukes med alle typer lister (filer, kommandohistorikk, git-kommandoer, prosesslister); det er med andre ord en fuzzy finder.<\/p>\n\n\n\n<p><strong>Ripgrep<\/strong> er et alternativ til grep, men det er den lynraske.<\/p>\n\n\n\n<p>N\u00e5r disse to kombineres, kan jeg raskt finne alt jeg vil ha i min <a href=\"https:\/\/thecodest.co\/nb\/dictionary\/why-do-projects-fail\/\">prosjekt<\/a>.<br>Jeg har to innstillinger i min <strong>Vim<\/strong> config-filen for \u00e5 hjelpe meg med dette:<\/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>Den f\u00f8rste lar meg raskt finne riktige filer ved hjelp av fuzzy finding p\u00e5 filstier (CTRL-P). Den andre kj\u00f8rer fuzzy finder p\u00e5 alle stier og innholdet i filene i prosjektet mitt ved hjelp av <strong>Ripgrep<\/strong> (CTRL-F).<\/p>\n\n\n\n<p>La oss si at jeg \u00f8nsker \u00e5 finne migrasjon der jeg la til en kolonne i <code>brukere<\/code> bord. Jeg trykker CTRL-F og skriver noe s\u00e5nt som <code>adcolusnam<\/code> og det vil matche <code>add_column :users, :name, :string<\/code>.<\/p>\n\n\n\n<p>N\u00e5r jeg leter etter en metodedefinisjon, kj\u00f8rer jeg ofte CTRL-F <code>def metode_navn<\/code>.<\/p>\n\n\n\n<p>Det er veldig nyttig, ettersom det s\u00f8ker gjennom filbane + innhold. Det er spesielt praktisk n\u00e5r jeg vet at innholdet jeg leter etter, befinner seg i en bestemt del av prosjektet. Jeg vil for eksempel finne hvor vi oppdaterte et brukernavn, og jeg husker at det var et sted i kontrollerne. Jeg trykker p\u00e5 <code>CTRL-F<\/code> <code>conupdname<\/code> for \u00e5 matche linje <code>app\/controllers\/users_controller: @user.update(navn: nytt_navn)<\/code>.<\/p>\n\n\n\n<p>Hvis du kjenner prosjekt- og kodebasestrukturen din, kan du enkelt konstruere uklare s\u00f8k for \u00e5 finne nesten hva du vil.<\/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\">Klikk her <\/a> for \u00e5 se et kort opptak av meg mens jeg leker med `discourse`-kodebasen (440k LOC p\u00e5 min i5, 16GB desktop) og viser hvordan jeg vanligvis beveger meg rundt i prosjektet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sammendrag<\/h2>\n\n\n\n<p>Jeg h\u00e5per du ble interessert i oppsettet mitt og bestemte deg for \u00e5 gi <strong>Fzf<\/strong> et fors\u00f8k i dine kodingsbestrebelser. Det har virkelig endret m\u00e5ten jeg bruker <strong>Vim<\/strong> som en <a href=\"https:\/\/thecodest.co\/nb\/dictionary\/what-is-code-refactoring\/\">kode<\/a> redakt\u00f8r.<\/p>","protected":false},"excerpt":{"rendered":"<p>For noen \u00e5r siden satt jeg og grillet med noen venner, alle Java-utviklere. Jeg vet ikke helt hvordan det kom opp, men vi begynte \u00e5 snakke om kodemilj\u00f8ene v\u00e5re. Jeg fortalte dem at jeg bruker Vim og terminaler til all utviklingen min. Det utl\u00f8ste noen vitser og morsomme sp\u00f8rsm\u00e5l, som om jeg fortsatt bruker hullkort \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=\"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\/nb\/blogg\/rails-utvikling-med-tmux-vim-fzf-ripgrep\/\" \/>\n<meta property=\"og:locale\" content=\"nb_NO\" \/>\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\/nb\/blogg\/rails-utvikling-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 minutter\" \/>\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\":\"nb-NO\",\"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\":\"nb-NO\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/rails-development-with-tmux-vim-fzf-ripgrep\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@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\":\"nb-NO\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nb-NO\",\"@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\":\"nb-NO\",\"@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\\\/nb\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rails-utvikling med TMUX, Vim, Fzf + Ripgrep - The Codest","description":"For noen \u00e5r siden satt jeg og grillet med noen venner, alle Java-utviklere. Jeg vet ikke helt hvordan det kom opp, men vi begynte \u00e5 snakke om kodemilj\u00f8ene v\u00e5re. Jeg fortalte dem at jeg bruker Vim og terminaler til all utviklingen min. Det utl\u00f8ste noen vitser og morsomme sp\u00f8rsm\u00e5l, som om jeg fortsatt bruker hullkort :)","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\/nb\/blogg\/rails-utvikling-med-tmux-vim-fzf-ripgrep\/","og_locale":"nb_NO","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\/nb\/blogg\/rails-utvikling-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 minutter"},"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":"nb-NO","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-utvikling 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","description":"For noen \u00e5r siden satt jeg og grillet med noen venner, alle Java-utviklere. Jeg vet ikke helt hvordan det kom opp, men vi begynte \u00e5 snakke om kodemilj\u00f8ene v\u00e5re. Jeg fortalte dem at jeg bruker Vim og terminaler til all utviklingen min. Det utl\u00f8ste noen vitser og morsomme sp\u00f8rsm\u00e5l, som om jeg fortsatt bruker hullkort :)","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/#breadcrumb"},"inLanguage":"nb-NO","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\/"]}]},{"@type":"ImageObject","inLanguage":"nb-NO","@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":"nb-NO"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"nb-NO","@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":"nb-NO","@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\/nb\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/comments?post=3534"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3534\/revisions"}],"predecessor-version":[{"id":7967,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/posts\/3534\/revisions\/7967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/media\/3535"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/media?parent=3534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/categories?post=3534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/nb\/wp-json\/wp\/v2\/tags?post=3534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}