<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Quick Programming - Medium]]></title>
        <description><![CDATA[Development-related articles. - Medium]]></description>
        <link>https://medium.com/quick-programming?source=rss----10fe3c0d91af---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Quick Programming - Medium</title>
            <link>https://medium.com/quick-programming?source=rss----10fe3c0d91af---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 05 Nov 2026 01:05:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/quick-programming" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Essential CLI Tools for Senior Software Engineers in the AI era]]></title>
            <link>https://medium.com/quick-programming/essential-cli-tools-for-senior-software-engineers-in-the-ai-era-945df6e4050a?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/945df6e4050a</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Wed, 28 Oct 2026 19:01:23 GMT</pubDate>
            <atom:updated>2026-10-28T19:01:23.239Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Use your terminal more!</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*GFFfUsRnqk-lKr3G.png" /><figcaption>My Tmux setup</figcaption></figure><p>The first time I laid eyes on another senior’s terminal setup I was in awe. This was some years ago, but I made it my goal to get there as well. And some years later I have achieved that goal.</p><p>Now I don’t expect you to somehow get the same experience, but I can help you become <em>that </em>senior developer in a way shorter span of time.</p><p>These are just some of the CLI tools and skills that I find essential nowadays, even in the agentic AI era.</p><h3>General CLI Knowledge</h3><p>The biggest and most vague one on this list is just to have a very good understanding of CLI tools that already exist on most systems. Some of these are grep (or rg ), sed , awk , find , git , head and many more.</p><p>There is a reason that even your AI agents run these commands non-stop. They are a great way to look through code, understand how a system works and they make life easier.</p><p>Understand the tools you use. Version control in VSCode is made effortless, but you should know what happens under the hood.</p><p>I’ve created several courses on Udemy on these topics because I think that they are so useful.</p><p><a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">Mastering Linux Text Processing with Grep, Sed and Awk</a></p><p>Bash is the <strong>language of the terminal</strong>. Learn it.</p><p><a href="https://www.udemy.com/course/bash-fundamentals-for-linux-users/?referralCode=4F0F8B6D824425086630">Mastering Bash Shell Scripting | Developers and Linux users</a></p><h3><a href="https://github.com/ajeetdsouza/zoxide">Zoxide</a></h3><p>Ever since I heard about Zoxide, I changed my cd command to an alias of zoxide . It’s just such a useful tool that I use daily, without even thinking about it.</p><p>Zoxide is a replacement for cd that makes life easier. It keeps a list of recently navigated folders and will assign a weight to those based on frequency.</p><p>In short, this means that you can go to any recently entered folder from anywhere. cd private might cd you into ~/Documents/GitHub/private/ , even if you’re still just in ~ .</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LvM63G03v34i50qp.gif" /><figcaption>From the <a href="https://github.com/ajeetdsouza/zoxide">GitHub page of Zoxide</a></figcaption></figure><h3>(Neo)vim</h3><p>I have said it a ton of times already, but I haven’t said it enough. Learn Vim.</p><p>Or, any ‘flavour’ of Vim that you’d like to learn. Like vi , vim , gvim or <a href="https://neovim.io/">neovim</a> . I use regular vim for most of my small edits, and even wrote an article for just that.</p><p><a href="https://medium.com/quick-programming/the-case-for-a-minimal-vim-config-263dfbf14e92">Where a Minimal Vim Config Shines ✨</a></p><p>But I also use Neovim a lot when working on bigger projects, checking code that Claude wrote, or when writing my courses (with a lot of .md files!).</p><p>My Neovim config has a ton of plugins, while my Vim config has none. But I might add a filetree and bufferbar soon…</p><p>Of course, since I’m such a fan of Vim I’ve also created a course for it on Udemy. It’s my 2nd best selling course.</p><p><a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">Mastering Vim and Neovim: The Complete Course</a></p><h3><a href="https://github.com/jesseduffield/lazygit">Lazygit</a></h3><p>This one is mostly quality of life. And while I’ve said that you should know what Git commands you need, when you know your stuff it’s very useful to quickly being able to view your staged files, changed lines and commits in a visually appealing view.</p><h3>Tmux</h3><p><a href="https://github.com/tmux/tmux/wiki">Tmux</a> is, aside from Vim, the most important to learn.</p><p>Every day I cringe when I see developers have 4 windows with terminals open, instead of just using their native tab functionality, or using a multiplexer like Tmux.</p><p>Why Tmux if most terminals already have tabs built-in? Because it’s universal.</p><p>My development setup for work is different than my own, but I can use Tmux on both, so I have a more universal setup than if I didn’t use it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*GFFfUsRnqk-lKr3G.png" /><figcaption>My Tmux setup</figcaption></figure><p>To learn it I can recommend the <a href="https://pragprog.com/titles/bhtmux3/tmux-3-productive-mouse-free-development/">Tmux 3 book</a>. It’s where I’ve gotten most of my knowledge from (actually from the Tmux 2 book, but I recommend getting the newer version). But I’ve also created a course for it (My best selling course!) that you can find here.</p><p><a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42">Mastering Tmux | Linux Terminal Productivity</a></p><h3>Oh My Zsh</h3><p><a href="https://ohmyz.sh/">Oh My Zsh</a> is a layer on top of Zsh. I don’t write Zsh scripts, but I do love some of their additional functionality that Bash doesn’t provide. Oh My Zsh adds some more theming, and most importantly of all:</p><p>It provides some amazing aliasses for Git. My previous job installed it on everybodies laptop, and we could work so fast in the terminal that the keyboard almost went up in smoke from the speed (not really, but it sounded amazing pounding on a laptop keyboard with 120bpm).</p><h3>Starship</h3><p>My final recommendation has to be Starship. It makes the terminal look a lot better, and when something looks good, I like working with it.</p><p>It serves one purpose for me:</p><p>Make the terminal pretty, to make me <strong><em>want</em></strong> to use it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/709/1*rfoo4KHFhNPTfAdH6CVSUQ.png" /><figcaption>From their official docs</figcaption></figure><p>Installing it is easy and it has some good functionality like showing which Git branch you’re working in.</p><p>You can easily configure it to your liking as well.</p><h3>Conclusion</h3><p>The terminal is an amazing tool that does its job good and the AI era doesn’t negate any of its usefulness!</p><p>Take a look at <a href="https://www.udemy.com/user/martijn-vissers/">my courses on Udemy</a>, most of which are focused on working inside the terminal.</p><p><a href="https://www.udemy.com/user/martijn-vissers/">Martijn Vissers | FullStack Linux enthusiast| Udemy</a></p><p>Thank you for reading and have a lovely day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=945df6e4050a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/essential-cli-tools-for-senior-software-engineers-in-the-ai-era-945df6e4050a">Essential CLI Tools for Senior Software Engineers in the AI era</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Making Presentations In The Terminal]]></title>
            <link>https://medium.com/quick-programming/making-presentations-in-the-terminal-2434c4ebec6d?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/2434c4ebec6d</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Tue, 27 Oct 2026 14:20:21 GMT</pubDate>
            <atom:updated>2026-10-27T14:20:21.318Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Because who needs PowerPoint.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-wAXEVZ6imoEecpSstvrUg.png" /><figcaption><a href="https://github.com/maaslalani/slides">https://github.com/maaslalani/slides</a></figcaption></figure><p>As developers, there’s one thing we hate, and that’s point-and-click applications. Powerpoint, Word, Windows settings, it all sucks because we cannot just type what we want in a language that’s universally understood.</p><p>But what if I tell you there’s a few options out there anyway.</p><h3>Slides</h3><p><a href="https://github.com/maaslalani/slides">Slides</a> is a GitHub repository by Maaslalani for a terminal viewer in the terminal. It works by using markdown files and changing parsing them to simple presentations. I’ve been using it for all my courses on Udemy and it’s been amazing so far.</p><p>It’s writting in Go, so it’s very fast too. Haven’t seen it lag once.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/757/1*s5szKEWKHXFcd6tATL5EIw.png" /></figure><p>As you can see, It’s not just text. Code snippets, Headers can all be used inside a Slides presentation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7se_EGzRdxgtNrFnXUihvg.png" /></figure><p>It starts very simply by using a header with # and separating slides with --- (triple dash)</p><pre># First Slide<br><br>Some content<br><br>---<br><br># Second Slide<br><br>Some more content</pre><p>Slides will automatically handle splitting them into to slides that you can switch to by using arrow keys like you’d expect from a presenter application.</p><p>slides presentation.md</p><p>I’ve been making my presentations fully in the terminal. Editing with Vim or Neovim, and presenting them with Slides and for me it’s a great workflow that I can recommend to many people.</p><h3>Conclusion</h3><p>My presentations are always made with care in Vim and presented with Slides. I’ve first used it for my Vim course, and after that for all my other courses (seriously!).</p><p>Vim is easy fairly to learn the basics of, it’s everywhere, it’s small, and VERY capable for work that you already do on a daily basis.</p><p>Start learning Vim with <a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">my course on Udemy that you can find here.</a> It helps me out a lot since I offer my articles on here for free now.</p><p>Thank you so much for reading and have a wonderful day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2434c4ebec6d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/making-presentations-in-the-terminal-2434c4ebec6d">Making Presentations In The Terminal</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I use Tmux in the Agentic AI era]]></title>
            <link>https://medium.com/quick-programming/how-i-use-tmux-in-the-agentic-ai-era-c6a4ce3589ff?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/c6a4ce3589ff</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Tue, 27 Oct 2026 14:04:56 GMT</pubDate>
            <atom:updated>2026-10-27T14:04:56.078Z</atom:updated>
            <content:encoded><![CDATA[<p>Even now, Tmux is still essential in my development toolkit.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VkPxi3vJHUeG7WOS-K8xNQ.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@almoya?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Aerps.com</a> on <a href="https://unsplash.com/photos/a-laptop-displays-what-can-i-help-with-5e4Zlblkvks?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>With the rise of Claude, Codex, Cursor, and all others, has come a rise in Terminal UI use. Claude Code and Codex can easily be run in the terminal, it looks cool as hell, but what do you use for all other work?</p><p>Editing AGENTS.md files manually, updating some minor details in their skills/ , or simply just running the software you’re developing.</p><p>There’s still a big change you’re still using multiple terminal apps than just your agents. Tmux can keep all those programs organised in a single terminal session.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/704/1*HFI06qdKrtlZYZIrZbkeIQ.png" /><figcaption>My Tmux config with some open windows</figcaption></figure><h3>What is Tmux?</h3><p>A terminal multiplexer lets us have multiple programs active in a single terminal session. So within a single window, a single SSH session, we can run multiple programs.</p><h3>Keep Everything Organized</h3><p>My client window doesn’t just have a single program running either, it’s a collection of 4 panes that run the following:</p><ul><li>Landing page (AstroJS)</li><li>Frontend (Angular)</li><li>Backend (NestJS)</li><li>Database (Docker Compose)</li><li>An empty pane for git commands</li></ul><p>It looks like this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/719/1*E8e-EoLAJp0uySe55WSaLA.png" /><figcaption>Tmux setup</figcaption></figure><p>So besides from looking awesome, I only have a single window open for running everything i need to run.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/169/1*rgwMBEgyNQD94CBmsV23Qw.png" /><figcaption>Only 1 Ghostty instance running 6+ programs</figcaption></figure><p>And if you look closely at the Ghostty screenshot, you will see that its title is ./tmux.sh . That’s because I let Codex create the startup script so I never have to manually start each separate program.</p><p>You can do this in YAML as well by using <a href="https://github.com/tmuxinator/tmuxinator">Tmuxinator</a>, it’s a lot cleaner but requires another program on top of Tmux, so a shell script is the more minimal option.</p><h3>Stop Touching Your Mouse</h3><p>So you probably think this is a non-issue.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MdrvkEowmZ8libFI8ClQpQ.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/@rebekahyip?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Rebekah Yip</a> on <a href="https://unsplash.com/photos/person-holding-black-and-gray-computer-mouse-FwfyVSfUFWs?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>If you’re already coming from a Vim or Emacs background, you will know just how nice it is. Not switching positions all the time, and just focusing on the actual work (typing in prompts).</p><p>It’s also more ergonomic, so if you are switching back and forth from mouse and keyboard and you’re getting that RSI feeling, it might be time to learn some more shortcuts and start using modal editors such as Vim and a multiplexer like Tmux (Along with a tiling WM if you’re really getting into it).</p><h3>How do I Learn Tmux?</h3><p>Honestly, there’s a great amount of resources on Tmux. Even though the official documentation is lacking in its ease-of-use I can recommend a few sources:</p><ul><li>The <a href="https://pragprog.com/titles/bhtmux3/tmux-3-productive-mouse-free-development/">Tmux 3 book</a>. It’s where I advanced the most in my Tmux journey. A great read, thin book so It’s not a thousand page reference guide, but it focuses on real-world usage as well. (Shoutout to <a href="https://pragprog.com/titles/dnvim2/practical-vim-second-edition/">Practical Vim</a> as well)</li><li><a href="https://www.udemy.com/courses/search/?q=tmux">Online courses</a>, it’s how I started to gain my first experience after installing it and having no clue. I just worked through the basics first. The Tmux 2 Book helped me continue after that.</li><li><a href="https://www.youtube.com/watch?v=nTqu6w2wc68">YouTube videos</a>. Honestly, I think I started using Tmux after seeing some YouTuber or Twitch streamer use it and thinking they’re awesome, or Coding Jesus who mentions you need it to become “cracked”.</li><li><a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42"><strong>My own course</strong></a>. I’ve learned so much just by creating a course to help others. And all that I’ve learned along the way I can also teach you.</li></ul><p>If you want to support me, you can choose <a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42">this option</a>, but honestly just install Tmux and mess around for a few minutes first.</p><h3>Conclusion</h3><p>Tmux is an amazing tool that does its job good. You can install it almost anywhere (I’ve even seen people use it in airgapped environments, even with custom configs), and since you can install it anywhere, you don’t need to re-learn your terminal emulators’ keybindings.</p><p>And the AI era doesn’t negate any of its usefulness!</p><p>To help you learn it (its learning curve is steep!) I have created a course on Udemy that you <a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42"><strong>can find here</strong></a><strong>. </strong>It is the most bought Tmux course on there.</p><p>Thank you for reading and have a lovely day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c6a4ce3589ff" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/how-i-use-tmux-in-the-agentic-ai-era-c6a4ce3589ff">How I use Tmux in the Agentic AI era</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to use the terminal like Claude and Codex]]></title>
            <link>https://medium.com/quick-programming/how-to-use-the-terminal-like-claude-and-codex-6838dad60437?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/6838dad60437</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ai-agent]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 19:54:27 GMT</pubDate>
            <atom:updated>2026-10-24T19:54:27.722Z</atom:updated>
            <content:encoded><![CDATA[<p>Speed in the terminal isn’t only for Agents.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*zZp4C5ibFaBcHz47.png" /></figure><p>If you’ve ever had your permissions very low and Claude or Codex had to ask about every command you probably have seen a ton of rg, grep, sed and maybe even some awk.</p><p>And these aren’t some obscure commands that gain traction again because of AI, no. These are commands so deeply embedded into Linux and software development that even the tiniest of distributions, such as Alpine, feature some kind of variant of these.</p><h3>Where is X implemented (grep and rg)</h3><p>Grep and <a href="https://github.com/burntsushi/ripgrep">RipGrep</a> are the first essential commands for your agents. It answers this question:</p><blockquote>“Where does this string of text occur?”</blockquote><p>For example, you ask your agent to work on your authentication flow. It needs to find code related to that. It will look for generic pieces of code that contain words like “auth” or “login” with commands similar to this:</p><pre>rg -n -i &quot;auth|login|session&quot;</pre><p>Where -n will show line numbers and -i will ignore capitalization.</p><p>This might output something like this:</p><pre>apps/api/src/app.module.ts<br>4:import { AuthModule } from &#39;./auth/auth.module.js&#39;;<br>7:  imports: [ConfigModule.forRoot({ isGlobal: true }), CoursesModule, AuthModule],</pre><p>It has now found two occurences in the app.module.ts file.</p><h3>Show me the function (sed)</h3><p>Then it might want to try and find the code inside of a function or class it has found. In the example above, we see that the authModule was found.</p><pre>sed -n &#39;19,40p&#39; apps/api/src/auth/auth.service.ts</pre><p>Here we use sed to print lines 19 through 40 of the service with the p command. The -n will not print anything outside of ‘changed lines’.</p><p>Sed is a stream editor, it works with this syntax: &lt;filter&gt;&lt;commands&gt; , we can also do things like 19,40p where the command is p and 19,40 is the &lt;filter&gt; .</p><p>It is often used to change text, for example with the &lt;command&gt;/From/To/flags syntax like so:</p><pre>sed -n &#39;s/AuthService/AuthenticationService/p&#39; apps/api/src/auth/auth.service.ts</pre><p>we can change the name of AuthService to the verbose AuthenticationService . where we use s as a command and still p as a flag to output the changed lines of text.</p><h3>Combining tools</h3><p>The power of Unix shines when combining small tools by using pipes.</p><pre>rg -n -i &quot;auth|login|session&quot; | head -n 20</pre><p>By adding head or tail to a command like grep you can only find the first occurences so your screen doesn’t immediately fill with hundres of occurences. You can also use this with a cat command to see the first lines of a class to skip the imports in your sed command.</p><pre>$ cat -n auth.service.ts | head -n 20<br>$ sed -n &#39;17,40p&#39; auth.service.ts<br><br># Interesting file content starts at line 17</pre><h3>How to learn these tools</h3><p>So, I learned grep, sed, and awk by watching a course on Udemy, some YouTube videos, and by playing around with it. I’ve since used it in my pipelines and if I have a few minutes to spare I might come up with a little problem to solve using sed and awk.</p><p>I’ve also created a course on Udemy on grep, sed, and awk. Since the three command line tools work great together. <a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">You can find it here</a>.</p><h3>Conclusion</h3><p>Just because an agent can use these tools efficiently, it doesn’t mean that we humans can’t either. Learn these tools and understand what they do so you can actually follow your agents thought process while it’s happening.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6838dad60437" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/how-to-use-the-terminal-like-claude-and-codex-6838dad60437">How to use the terminal like Claude and Codex</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I Learned Vim the Wrong way. Here’s what I’d do different]]></title>
            <link>https://medium.com/quick-programming/i-learned-vim-the-wrong-way-heres-what-i-d-do-different-eb14adfa6ce9?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/eb14adfa6ce9</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Thu, 28 May 2026 17:02:40 GMT</pubDate>
            <atom:updated>2026-05-28T17:02:39.736Z</atom:updated>
            <content:encoded><![CDATA[<p>Editing with Vim motions doesn’t have to be difficult.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BunTYhU9Jm348e_d.png" /><figcaption>Vim</figcaption></figure><p>Many years ago, I saw Vim in a YouTube video and thought it looked amazing. The quick movement, motions and macros seemed like magic for me, the programmer still using Notepad++ (VSC didn’t exist).</p><p>But now the times are different. Many editors feature some sort of Vim Motions plugin, and some even have it built-in.</p><p>But still, using it and forcing yourself to not touch your mouse is difficult and learning Vim that way is nearly impossible. So here’s what I did.</p><h3>Don’t throw away your mouse</h3><p>So, as with most things, if you try to change your whole workflow, it will never work. Your mind and body need time to adjust to this new thing that you’re trying. Whether it’s a new programming language, paradigm, or editing method.</p><p>So keep your mouse.</p><p>VSCode, Zed, JetBrains, and today even Neovim will still allow you to use your mouse, even with Vim motions enabled.</p><p>I’ve spent around half a year using my mouse still for quicker movement. But each day, each hour I spent with the Vim movements I learned how to use them effectively.</p><p>So don’t feel bad if you still use your mouse to put your cursor at the middle of the next line, or in the next function. Just try to slowly integrate more and more commands like $ (end of a line), ^ (first non-whitespace character of a line), and 0 (very first column of a line).</p><h3>Challenge yourself</h3><p>When using some Vim motions, some quick commands like cw (change word) or :s/search/replace/g (search replace), you might sometimes think:</p><blockquote>Hey, I could do this in a macro</blockquote><p>And even if you don’t <em>exactly </em>know how, you should at least <strong><em>TRY </em></strong>to do it.</p><p>I have had so many instances where I created a macro, I let it run 10 times and had to CTRL-Z because my macro didn’t work 100% as expected.</p><p>But every single time, I did learn from it.</p><h3>Take your time</h3><p>You’ve heard this before.</p><p>Learning a completely new way of editing text takes time. You’ve probably spent something like 10–20 years of your life already editing text using notepad, Word, or some WYSIWYG tool like the Medium blog editor I’m currently using for this article.</p><p>You’re trying to learn a whole new way of editing, a way that’s called modal editing, because you have Normal mode, Insert mode, Visual mode, and a few other modes.</p><p>So no wonder it feels weird at first. So just take your time.</p><h3>Take a course</h3><p>There are some courses online for Vim, Neovim, and all it’s other variants.</p><p>I have created a Vim course on Udemy that you can find here:</p><ul><li><a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">Mastering Vim</a>. A basic to advanced course on plain Vim.</li></ul><p>But even besides my own courses, there are tons of online resources for Vim, Tmux, Awk, and all other tools that can be useful!</p><h3>Read more articles</h3><p>I alone probably have created more than 10 articles on Vim, how to use it, and why you should use it.</p><ul><li><a href="https://medium.com/quick-programming/the-case-for-a-minimal-vim-config-263dfbf14e92">Where a Minimal Vim Config Shines ✨</a></li><li><a href="https://medium.com/quick-programming/one-tool-i-love-neo-vim-cad7cf7f4e6c">One tool I love: (Neo)Vim</a></li></ul><p>So go read some, and you might get a better idea of how to learn Vim and finding a method that works for you.</p><h3>Conclusion</h3><p>Vim is easy fairly to learn the basics of, it’s everywhere, it’s small, and VERY capable for work that you already do on a daily basis.</p><p>Start learning Vim with <a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">my course on Udemy that you can find here.</a> It helps me out a lot since I offer my articles on here for free now.</p><p>Thank you so much for reading and have a wonderful day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eb14adfa6ce9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/i-learned-vim-the-wrong-way-heres-what-i-d-do-different-eb14adfa6ce9">I Learned Vim the Wrong way. Here’s what I’d do different</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Where a Minimal Vim Config Shines ✨]]></title>
            <link>https://medium.com/quick-programming/the-case-for-a-minimal-vim-config-263dfbf14e92?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/263dfbf14e92</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Mon, 13 Apr 2026 16:42:18 GMT</pubDate>
            <atom:updated>2026-05-20T20:40:22.543Z</atom:updated>
            <content:encoded><![CDATA[<h3>Where a Minimal Vim Config Shines</h3><p>Do we need all these bells and whistles?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/922/1*DxMR4cGV2gfS952AgJeprw.png" /><figcaption>Minimal Vim startup</figcaption></figure><p>I’m going to start off by saying that I won’t say that you do not need a config, and I’m not going to try to convince you to throw away your Lazyvim setup.</p><p>But I will tell you that you should <em>master</em> the tools you use from a fundamental level.</p><h3>But First</h3><p>As I’ve mentioned before in other articles, I am no longer part of the Medium partner program, but there are other ways to support me.</p><p>I have created courses on Udemy, and based on this article I’ve written today I can recommend the following courses for you.</p><ul><li><a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">Mastering Vim</a>. A basic to advanced course on plain Vim.</li><li><a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42">Learning Tmux</a>. Another basic to advanced course on a very common terminal productivity tool.</li><li><a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">Grep, Sed, and Awk</a>. In the same lane as “learning tool fundamentals”, this course goes into learning those three terminal tools which can be suprisingly helpful in day-to-day work.</li></ul><p>Thanks and enjoy the article.</p><h3>The Possibilities</h3><p>I feel like a lot of Vim users don’t know the possbilities of the plain editor. I know I didn’t know a ton before I started doing research to actually teach the editor. I messed around with all functionalities I use with my Lazyvim setup, but tried them with regular plain Vim.</p><p>And sure, these features aren’t the most interesting for everyone, especially if you’re used to Vim.</p><h4>Bufferlist</h4><p>Multiple tabs open is my number #1 feature I ‘missed’ from my VSC days. But lo and behold, it’s possible and easier than I thought, especially with a few little keybinds.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/736/1*Smbgbx7D4zJUOYw0VH9QmA.png" /></figure><ul><li>:ls or :buffers will open this little list at the bottom of the screen. It’s a list of all open “tabs”.</li><li>You can change through them easily with :bn or :bnext and :bp and :bprev . Imagine what happens when you bind these to &lt;SHIFT-h&gt; and &lt;SHIFT-l&gt; in normal mode. You can switch between these tabs super fast.</li></ul><h4>Splitscreens</h4><p>I think most seasoned Vim users can easily do this without any plugins or keybinds. But it’s still a very useful feature and can be improved with a few keybinds as well.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-qrBB8DSyF43fk2BIaOm8A.png" /></figure><ul><li>Open them with either :split or :vsplit depending on what you want.</li><li>Try to rebind the series of &lt;C-w&gt;&lt;direction&gt; to simply just &lt;C-&lt;direction&gt;&gt; , where you negate the w . This makes switching between the windows so much easier.</li></ul><h3>Lightweight</h3><p>The most important reason I keep my Vim minimal and my Neovim “bloated” is because I want it to be snappy, quick, and insanely fast.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/862/1*i2E8oAU-sg4d5MDCT-guOw.png" /></figure><p>Git commit messages? Please just start up Vim for me. The muscle-memory for pressing i to start editing came almost immediately so I never had any issues.</p><p>And this also applies to quick configuration changes like my .zshrc . I can just vim ~/.zshrc , do a quick /&lt;searchterm&gt; and edit whatever I need to edit.</p><h3>Conclusion</h3><p>Vim is easy fairly to learn the basics of, it’s everywhere, it’s small, and VERY capable for work that you already do on a daily basis.</p><p>Start learning Vim with <a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">my course on Udemy that you can find here.</a> It helps me out a lot since I offer my articles on here for free now.</p><p>Thank you so much for reading and have a wonderful day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=263dfbf14e92" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/the-case-for-a-minimal-vim-config-263dfbf14e92">Where a Minimal Vim Config Shines ✨</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Where Plain Vim Shines in 2026]]></title>
            <link>https://medium.com/quick-programming/where-plain-vim-shines-in-2026-aa334831d5c1?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/aa334831d5c1</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Sat, 21 Feb 2026 14:23:02 GMT</pubDate>
            <atom:updated>2026-02-21T14:23:01.713Z</atom:updated>
            <content:encoded><![CDATA[<p><em>You don’t always need a full IDE experience. Here’s why.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/799/1*xOy2NNCm2DWMFF10OJgTjA.png" /><figcaption>Neovim</figcaption></figure><p>I love Vim, I’ve written several articles explaining why you should use Vim, how to learn Vim, Why to learn Vim motions, etc. And in most, I’ve mentioned that I’m using Neovim with the Lazyvim preconfig.</p><p>And while I love that for my daily programming work, I certainly don’t need all that overhead for everything I do. And sometimes I will just go back to plain old Vim with a minimal configuration without plugins.</p><h3>Small Edits</h3><p>Git commit messages, editing a config file, copying a line of text, and working on a Dockerfile or Kubernetes YAML. All of these have one thing in common.</p><p><strong><em>They’re not full projects in themselves.</em></strong> And while Vim has great multifile editing capabilities, I love not having any overhead, no fuss.</p><p>So just whenever I’m in a terminal, and I am in that working directory, I will edit these files quickly using Vim’s search, some cW (change Word) magic and I save and quit.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/607/1*eboB74aOVLFZIOEGduIlqQ.png" /><figcaption>Dockerfile</figcaption></figure><blockquote>Why would I use a full IDE-like config for an 8 line file?</blockquote><p>Of course when I’m already in an IDE I won’t open Vim especially for this purpose, but if I’m already doing some Git stuff and I’m already in the terminal anyway, why open my IDE back up?</p><h3>Quick startup</h3><p>This is 100% a config “issue”, but whenever I open my Neovim without a file specified, it will open up my menu.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/797/1*YfhzOdATbYsVMKuZ0klp9A.png" /><figcaption>Neovim startup with Snacks.nvim</figcaption></figure><p>And it took 232ms to start up. If I just open Vim, I cannot see how fast it opens up because I don’t log it anywhere. But I can already feel it is near instant, compared to my bloated Lazyvim config.</p><p>And then when I select a file, or even open one from the CLI, it will start doing all sorts of things like loading language servers and offering up autocomplete prompt. Which I don’t need when I’m writing a markdown file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/797/1*0yw6yrSLz4m8Gj3usD9DNA.png" /><figcaption>Plain Vim startup</figcaption></figure><p>Again, if I really need LSPs or plugins, like when I’m actually writing some code instead of config files, I’d often just accept the overhead and go into Neovim.</p><h3>It Is Everywhere</h3><p>Most Linux distributions, except very minimal ones like Alpine ship with some variant of Vim.</p><p>And even if it doesn’t ship with it, you can install it easily with most package managers. Because it, and its predecessors have existed for over 30 years I think.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/259/1*nWMzsB-Kt-O8Jza4ItoCKA.png" /></figure><p>So whenever you’re SSHing into a server, chances are that you will find Vim available at your fingertips.</p><h3>Easy to Learn</h3><p>Steep, but fairly easy learning curve.</p><p>Learn the three basic modes and some simple motions.</p><ul><li>Normal mode: For most commands, press &lt;esc&gt; to enter Normal mode.</li><li>Insert mode: Your editing mode. Press “i” or “a” to enter Insert mode from Normal mode.</li><li>Command mode: For saving and quitting. Press “:” to enter Command mode from Insert mode.</li><li>Visual mode: for highlighting. Useful for copying text. Press “v” for Visual mode, and uppercase “V” for Visual-Line Mode which is useful for copying whole lines.</li></ul><p>More you don’t need to know at the start.</p><blockquote>And if you need more, you can always follow a quick Vim course. Like the one I give on Udemy that you <a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">can find here</a>.</blockquote><p>Regarding the motions and commands to learn (prepended with colon is a command mode command):</p><ul><li>:wq write and quit. Combination of :w and :q. Add an exclamation mark at the end to force write, quit, or both.</li><li>:e &lt;filename&gt; to edit a file from Vim</li><li>h,j,k,l left, down, up, right. You can also use arrow keys at the start of your journey.</li></ul><p><strong><em>Really thats all you need to know to get started with Vim. No joke.</em></strong></p><p>And then some other good-to-know commands:</p><ul><li>“y” when highlighting code in Visual mode to “yank” or copy the highlighted text.</li><li>“p” to “put” or paste the text at your cursor position in Normal Mode.</li><li>“yy” to copy a single line at once in Normal mode.</li><li>“dd” to delete a single line at once in Normal mode.</li></ul><p>So after reading this, you have learned the real essentials of Vim already, and you can start using it for edits already. How convenient.</p><h3>Conclusion</h3><p>Vim is easy fairly to learn the basics of, it’s everywhere, it’s small, and VERY capable for small edits that you already do on a daily basis.</p><p>Start learning Vim with <a href="https://www.udemy.com/course/vim-fundamentals/?referralCode=FE19E6369766A130EE74">my course on Udemy that you can find here.</a> It helps me out a lot since I offer my articles on here for free.</p><p>Thank you so much for reading and have a wonderful day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aa334831d5c1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/where-plain-vim-shines-in-2026-aa334831d5c1">Where Plain Vim Shines in 2026</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why you should learn Awk in 2026]]></title>
            <link>https://medium.com/quick-programming/why-you-should-learn-awk-69216b6afaa1?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/69216b6afaa1</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Mon, 09 Feb 2026 19:58:35 GMT</pubDate>
            <atom:updated>2026-02-09T20:00:18.685Z</atom:updated>
            <content:encoded><![CDATA[<p>Programmatic text editing in the terminal.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3JBEHgHpChKN8ajBBXndIA.png" /><figcaption>Master your terminal</figcaption></figure><p>Awk is a very unique tool. But there really aren’t many alternatives that are as universally available as awk.</p><h3>What is awk</h3><p>Awk can be used as a text manipulation program in the terminal. But while you can perform basic operations with sed, with awk you can add text, calculations and with complex conditionals.</p><p>Because awk is a programming language.</p><p>Awk perfectly complements grep and sed and you won’t need much more for most text manipulation use cases. Where you’d have to manually edit a file using Vim, you can use sed and awk to do so programmatically, and therefore apply the same changes to multiple files without having to rewrite anything.</p><h3>Why learn awk</h3><p>I started learning awk because I often saw it in scripts, together with sed, and every course or video I saw mentioned both. So when I wanted to learn sed (as it seemed easier to understand), I also decided to start learning awk. And boy I underestimated what awk could do, and I quickly learned that awk indeed is a programming language with features such as conditionals, loops, arrays, and more.</p><p>So I learned it because I wanted to pair it with sed and I wanted to see what was possible.</p><p>And now I know that I can perform most edits on structured text using it.</p><h3>Examples</h3><p>It’s hard to imagine the things you can do without first seeing some examples, no? So let’s look at some simple examples.</p><h4>Little examples</h4><p>Awk is useful when having some tabular data, like ls -l for example, and you just want to have the filenames, or only the permissions. With the $ we can specify a column to print on each line.</p><pre>ls -l | awk &#39;{ print $9 }&#39;</pre><p>This will just output all files in our current directory. If we use printf instead, we could have it on a single line separated by spaces instead of newlines.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/306/1*17nYfpzvDoZ714umo8ZUTw.png" /></figure><p>We can also set some conditions on the lines we want to use.</p><pre>awk -F, &#39;$6 == &quot;admin&quot; {print $2, $NF}&#39; users.csv</pre><p>This little script will output the 2nd and last columns for each row on our users.csv file defined below in the next section, but only for Admin users.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/575/1*F5U6u3VDayGAqL5ifOPWSg.png" /></figure><p>As you can see, some simple one-liners can already give some more meaningful insights in data, or it could help us in next steps in a script, if we were to loop over the filenames for example.</p><h4>Awk file example</h4><p>So, imagine you have a fake CSV file like this</p><pre>id,name,email,age,country,role,signup_date,last_login,status<br>1,Alice Jansen,alice.jansen@example.com,28,NL,user,2023-01-14,2025-03-10,active<br>2,Bob de Vries,bob.devries@example.com,35,NL,admin,2022-11-03,2025-03-14,active<br>3,Charlie Smith,charlie.smith@example.com,22,UK,user,2024-02-20,2025-02-28,active<br>...</pre><p>And you want to generate some sort of summary of some of the user statistics. You can of course do this in any way you want, but let’s assume we want an output like this</p><pre>=== User Database Report ===<br>Active users:<br>Active in US:<br>Users under 30: 16<br>Total records processed: 16</pre><p>Don’t ask me why, and just accept this for now. You might want to output something like this in your CICD pipeline. Then you can just create an awk script like this:</p><pre># summary.awk - Full user stats<br>BEGIN {<br>  print &quot;=== User Database Report ===&quot;<br>}<br>NR==1 { next }  # Skip header<br>{<br>  if ($9 == &quot;active&quot;) {<br>    active++<br>    if ($5 == &quot;US&quot;) us_active++<br>  }<br>  # Simple age group<br>  if ($4 &lt; 30) young++<br>}<br>END {<br>  print &quot;Active users:&quot;, active<br>  print &quot;Active in US:&quot;, us_active<br>  print &quot;Users under 30:&quot;, young<br>  print &quot;Total records processed:&quot;, NR-1<br>}</pre><p>Where we create our header with a BEGIN statement, do some calculations, and at the end we print the statistics.</p><p>And this is all in awk. In theory you could create this as a one-liner, but it’s simpler to save it as a file and use awk -f summary.awk users.csv as a command.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/342/1*dfG2DhhlPbXl49XXSPCP7A.png" /></figure><p>And in this case, you can see that, even though it’s commonly used as a simple command line tool, you could create very elaborate scripts for data processing.</p><h3>How to learn Awk</h3><p>So, I learned awk by watch a course on Udemy, some YouTube videos, and by playing around with it. I’ve since used it in my pipelines and if I have a few minutes to spare I might come up with a little problem to solve using sed and awk.</p><p>I’ve also created a course on Udemy on grep, sed, and awk. Since the three command line tools work great together. <a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">You can find it here</a>.</p><h3>Conclusion</h3><p>Together with grep and sed, awk is an amazingly versatile tool for text processing. Since it can be used programmatically you can edit files in other scripts (for example, project set-up scripts).</p><p>Check out my own course <a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">here</a>.</p><p>Thank you so much for reading, and have an excellent day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=69216b6afaa1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/why-you-should-learn-awk-69216b6afaa1">Why you should learn Awk in 2026</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why you should learn Sed in 2026]]></title>
            <link>https://medium.com/quick-programming/why-you-should-learn-sed-347aa8bc9bb5?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/347aa8bc9bb5</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Sun, 08 Feb 2026 14:11:31 GMT</pubDate>
            <atom:updated>2026-02-27T09:43:30.989Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Programmatically search and replace? Yes please</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bFWVGl9Pd4r7e403CD2Sjw.png" /><figcaption><a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5</a></figcaption></figure><p><a href="https://linux.die.net/man/1/sed">sed</a> is a command line tool available on most, Linux distributions. It’s a very useful tool, and it’s knowledge can even be used when editing text with Vim, since its search and replace is so very similar.</p><h3>What is sed</h3><p>Its man page reads:</p><blockquote><em>Sed</em> is a stream editor.</blockquote><blockquote>A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as <em>ed</em>), <em>sed</em> works by making only one pass over the <strong>input</strong>(s), and is consequently more efficient. But it is <em>sed</em>’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.</blockquote><p>This, of course, doesn’t mean much. But in short: It’s an editor that works on text programmatically.</p><p>Where a regular editor requires human input (Vim, VSCode, Zed, etc.), sed does not. You can therefore apply a single edit on multiple files at once, if you combine sed with the concept of <a href="https://en.wikipedia.org/wiki/Glob_(programming)">globbing</a> to select multiple files.</p><h3>Some examples</h3><p>Let’s say we have a fake log file like this</p><pre>2025-03-14 09:12:01 INFO  [web-1] GET /api/users 200 14ms<br>2025-03-14 09:12:03 INFO  [web-1] POST /api/login 401 22ms<br>2025-03-14 09:12:05 WARN  [auth] Failed login attempt for user_id=4821 ip=192.168.1.45<br>2025-03-14 09:12:07 INFO  [web-2] GET /api/products 200 31ms<br>2025-03-14 09:12:09 INFO  [web-2] GET /api/products/42 200 18ms<br><br>2025-03-14 09:12:13 INFO  [web-1] GET /api/cart 200 9ms<br>2025-03-14 09:12:15 INFO  [web-1] POST /api/cart/add 500 87ms<br><br>2025-03-14 09:12:18 WARN  [cache] Redis timeout after 2000ms key=product:42<br>2025-03-14 09:12:20 INFO  [web-2] GET /health 200 2ms<br>2025-03-14 09:12:22 INFO  [worker-1] Job=send_email status=success duration=143ms<br>2025-03-14 09:12:25 INFO  [worker-1] Job=generate_invoice status=success duration=312ms<br>2025-03-14 09:12:27 WARN  [worker-1] Job=cleanup_sessions took longer than expected duration=5021ms</pre><p>We want to (for some reason) replace all WARN text with ERROR, since we want to say that it’s way more important to check.</p><p>sed &#39;s/WARN/ERROR/&#39; fake.log \</p><p>And tada, every WARN becomes an ERROR.</p><p>Or we want to replace every blank line, just run</p><p>sed &#39;/^$/d&#39; fake.log</p><p>And while these very simple and weird examples might not look like much, we can do much more, like deleting certain lines, like the blank line command above, using ^$.</p><p>sed &#39;/INFO/d&#39; fake.log</p><p>Simple commmand to remove all INFO lines, since we only care about the warnings and errors anyway.</p><p><em>Hint: Don’t forget the </em><em>-i flag to actually change the file. Otherwise the changes will only show in </em><em>stdout , which is useful for checking if the command actually works.</em></p><h3>In a script</h3><p>Ever needed to change text from files within a script? You could write a Python script that opens the file, loops over lines, and changes whatever you need before saving it again but there are some issues with that.</p><p>It’s less portable since it’s Python, an interpreted language that might not be available everywhere.</p><p>You need to write a ton of code and could have issues with filenames, opening and closing the filestream, etc.</p><p>So why not use a Bash script and just use sed ?</p><h3>How to learn Sed</h3><p>There are a few ways to learn sed , and the most important aspect is to just use it whenever you can, even if it doesn’t really save time (because you’d be looking up how to do it).</p><p>But here are my recommendations:</p><ul><li>Learn sed in a simple course, like on Udemy or YouTube. <a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">I can recommend this one</a> that combines grep , sed and awk in a single course since the topics are closely related and will each help with some aspect of text processing in the terminal. <em>It’s also a course I wrote. </em>Most other courses bundle sed in a 8 hour Linux course, and that just didn’t work for me.</li><li>Learn by using it. As I’ve mentioned above, you learn tools like these by using them. It’s like a tool in a toolbox. You buy it, you learn to work with it, and maybe then it’ll really improve your daily work.</li><li>Buy the sed and awk pocket reference from O’reilly. It’s a great little reference book and doesn’t cost a lot. It’s also tiny, so you can easily take it to work.</li></ul><h3>How it ties into other programs like Vim</h3><p>In the intro I mentioned that knowledge on Sed translates to some other tools as well.</p><ul><li>Vim’s search and replace using Ex commands look very similar. :s/WARN/ERROR/g is almost the same as s/WARN/ERROR/ , right?</li><li>Awk’s search is also similar, &#39;/WARN/&#39; will check for any lines with WARN in it, and then you can execute the rest of your awk script on it.</li></ul><h3>Conclusion</h3><p>Sed is an amazing tool that does its job good. It’s everywhere and because of that it’s portable. You can easily do some searching and replacing and other text transformations. It’s hard to make it come across as useful in a simple blog post, but trust me. It just takes 30 minutes to learn, so why not try it?</p><p><a href="https://www.udemy.com/course/mastering-grep-sed-and-awk/?referralCode=79F6FE8024B2DDFA7FC5">You can learn it with my Udemy course, which goes over three tools, including sed.</a></p><p>Thank you for reading and have a lovely day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=347aa8bc9bb5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/why-you-should-learn-sed-347aa8bc9bb5">Why you should learn Sed in 2026</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why You Should Finally Learn Tmux (Yes, Even in 2026)]]></title>
            <link>https://medium.com/quick-programming/why-you-should-finally-learn-tmux-yes-even-in-2026-4dc9478bde30?source=rss----10fe3c0d91af---4</link>
            <guid isPermaLink="false">https://medium.com/p/4dc9478bde30</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[linux]]></category>
            <dc:creator><![CDATA[mbvissers | Quick Programming]]></dc:creator>
            <pubDate>Wed, 14 Jan 2026 13:54:23 GMT</pubDate>
            <atom:updated>2026-01-14T13:54:22.666Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Tmux is the productivity upgrade you’ve been ignoring for too long.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/665/1*-IhCoSA7smJ2ralqWFGNFA.png" /><figcaption>Screenshot by me!</figcaption></figure><p><a href="https://github.com/tmux/tmux">Tmux</a> is a tool with over 37k stars on GitHub, and that&#39;s not for nothing. Like Neovim <a href="https://medium.com/quick-programming/why-you-should-finally-learn-vim-yes-even-in-2025-bf5ae142bc7d">(read my article on Vim)</a>, it has to do with <strong><em>productivity within the terminal</em></strong>.</p><h3>The Problem</h3><p>Most terminals have tabs, split screens, and other functionalities built-in. Like Kitty, Ghostty, and Alacritty. But these all use their own keybinds, their own configurations, etc.</p><p>Another problem is that if you only have a single SSH session, you would have to connect multiple times to run multiple programs. All these issues are fixed by Tmux, a terminal multiplexer.</p><h3>What is Tmux?</h3><p>A terminal multiplexer lets us have multiple programs active in a single terminal session. So within a single window, a single SSH session, we can run multiple programs.</p><h3>Why does it still matter?</h3><p>In 2025, remote work is more common than ever. We work in big teams, on the same code bases, on the same cloud environment.</p><p>The persistence of sessions with Tmux makes working remotely easier than ever. If you ever lose your connection, you can just re-attach to your existing session.</p><p>With a simple shell script or Tmuxinator file, you can easily create reproducible development workspaces. For example, you can run your server, Docker database, and client in a single terminal with a single command.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/410/1*ywRDorhxVg5_EBbKNTsIGg.png" /><figcaption>tmuxinator file</figcaption></figure><p>This screenshot of a file will open Tmux with two windows, and one window will have three panes. I’ve actually used configs like this for production project development.</p><h3>How do I Learn Tmux?</h3><p>Honestly, there’s a great amount of resources on Tmux. Even though the official documentation is lacking in its ease-of-use I can recommend a few sources:</p><ul><li>The <a href="https://pragprog.com/titles/bhtmux2/tmux-2/">Tmux 2 book</a>. It’s where I advanced the most in my Tmux journey. A great read, thin book so It’s not a thousand page reference guide, but it focuses on real-world usage as well. (Shoutout to <a href="https://pragprog.com/titles/dnvim2/practical-vim-second-edition/">Practical Vim</a> as well)</li><li><a href="https://www.udemy.com/courses/search/?q=tmux">Online courses</a>, it’s how I started to gain my first experience after installing it and having no clue. I just worked through the basics first. The Tmux 2 Book helped me continue after that.</li><li><a href="https://www.youtube.com/watch?v=nTqu6w2wc68">YouTube videos</a>. Honestly, I think I started using Tmux after seeing some YouTuber or Twitch streamer use it and thinking they’re awesome. Or Coding Jesus who mentions you need it to become “cracked”.</li><li><a href="https://www.udemy.com/course/tmux-fundamentals/?referralCode=412DD2F2D6211681DA42">My own course</a>. I’ve learned so much just by creating a course to help others. If you want to support me, you can choose this option, but honestly just install it and mess around for a few minutes first.</li></ul><h3>Conclusion</h3><p>Tmux is an amazing tool that does its job good. You can install it almost anywhere (I’ve even seen people use it in airgapped environments, even with custom configs), and since you can install it anywhere, you don’t need to re-learn your terminal emulators’ keybindings.</p><p>Thank you for reading and have a lovely day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4dc9478bde30" width="1" height="1" alt=""><hr><p><a href="https://medium.com/quick-programming/why-you-should-finally-learn-tmux-yes-even-in-2026-4dc9478bde30">Why You Should Finally Learn Tmux (Yes, Even in 2026)</a> was originally published in <a href="https://medium.com/quick-programming">Quick Programming</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>