<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>The Terminal Yard - neovim</title>
    <subtitle>Writing about terminals and linux</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.lazyfreax.dev/tags/neovim/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.lazyfreax.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-02-05T00:00:00+00:00</updated>
    <id>https://blog.lazyfreax.dev/tags/neovim/atom.xml</id>
    <entry xml:lang="en">
        <title>Vim Keymap For Markdown Links</title>
        <published>2026-02-05T00:00:00+00:00</published>
        <updated>2026-02-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              coko
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.lazyfreax.dev/blog/vim-keymap-for-markdown-links/"/>
        <id>https://blog.lazyfreax.dev/blog/vim-keymap-for-markdown-links/</id>
        
        <content type="html" xml:base="https://blog.lazyfreax.dev/blog/vim-keymap-for-markdown-links/">&lt;p&gt;I work with &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Markdown&quot;&gt;Markdown&lt;&#x2F;a&gt; a lot. I use it for note-taking, documenting projects, creating personal wikis &lt;em&gt;(and a world-building wiki!)&lt;&#x2F;em&gt;, etc.
And most recently, I have started this blog so I use it even more than before.&lt;&#x2F;p&gt;
&lt;p&gt;Whenever I edit text in Markdown, I often find myself adding links here and there.
Since I also use &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;neovim.io&#x2F;&quot;&gt;Neovim&lt;&#x2F;a&gt; as my primary text&#x2F;code editor, I can easily add links to text elements using minimal vim motions.&lt;&#x2F;p&gt;
&lt;p&gt;It works well and it literally takes less than a second to do that.
But when I have to add dozens of links, it starts feeling a bit repetitive.&lt;&#x2F;p&gt;
&lt;p&gt;The great thing about Vim&#x2F;Neovim: &lt;strong&gt;You can configure your editor to do EXACTLY what you want&lt;&#x2F;strong&gt;.
So, I thought: &quot;why not create a custom keymap for that?&quot;&lt;&#x2F;p&gt;
&lt;p&gt;What I wanted:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Copy some URL to my system clipboard&lt;&#x2F;li&gt;
&lt;li&gt;Select some text in Neovim&lt;&#x2F;li&gt;
&lt;li&gt;Type &lt;kbd&gt;&amp;lt;leader&amp;gt;l&lt;&#x2F;kbd&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Have Neovim convert the selection to a markdown link &lt;code&gt;[text](link)&lt;&#x2F;code&gt;, where:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text&lt;&#x2F;code&gt; is the selected text&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;link&lt;&#x2F;code&gt; is the URL I copied to my system clipboard (&lt;code&gt;+&lt;&#x2F;code&gt; &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;change.txt.html#registers&quot;&gt;register&lt;&#x2F;a&gt; in Vim)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h1 id=&quot;the-keymap&quot;&gt;The keymap&lt;a class=&quot;post-anchor&quot; href=&quot;#the-keymap&quot; aria-label=&quot;Anchor link for: the-keymap&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;Here&#x27;s the keymap I have added to my Neovim config:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;lua&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;vim.keymap.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;set&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;quot;x&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;3&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;quot;&amp;lt;leader&amp;gt;l&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;quot;&amp;lt;Esc&amp;gt;`&amp;lt;i[&amp;lt;Esc&amp;gt;`&amp;gt;la](&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;5&lt;&#x2F;span&gt;&lt;span&gt;    { desc&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;Apply markdown [L]ink on current selection&amp;quot; &lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;6&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;To define a new keymap, we call &lt;code&gt;vim.keymap.set(...)&lt;&#x2F;code&gt; and give it some arguments:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The first argument &lt;code&gt;&quot;x&quot;&lt;&#x2F;code&gt; tells Neovim to only enable the keymap in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;visual.txt.html#Visual-mode&quot;&gt;Visual mode&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;The second argument &lt;code&gt;&quot;&amp;lt;leader&amp;gt;l&quot;&lt;&#x2F;code&gt; is the actual keybinding.
In this case, &lt;code&gt;&amp;lt;leader&amp;gt;&lt;&#x2F;code&gt; corresponds to the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;map.txt.html#%3CLeader%3E&quot;&gt;Leader&lt;&#x2F;a&gt; key which I set to &lt;kbd&gt;Space&lt;&#x2F;kbd&gt; in my config.
So, when I type &lt;kbd&gt;Space+l&lt;&#x2F;kbd&gt; it will trigger this keymap&lt;&#x2F;li&gt;
&lt;li&gt;The third argument is the sequence of motions to execute when the keymap is invoked&lt;&#x2F;li&gt;
&lt;li&gt;Finally, we define a description for the keymap&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The thing we want to have a look at is the sequence of motions:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;Esc&amp;gt;`&amp;lt;i[&amp;lt;Esc&amp;gt;`&amp;gt;la](&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;So, let&#x27;s break it down:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;First, we use &lt;code&gt;&amp;lt;Esc&amp;gt;&lt;&#x2F;code&gt; to switch to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;intro.txt.html#Normal-mode&quot;&gt;Normal mode&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Then, we move the cursor to the start of the previous visual selection with &lt;code&gt;`&amp;lt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;After that, &lt;code&gt;i[&amp;lt;Esc&amp;gt;&lt;&#x2F;code&gt; lets us switch to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;insert.txt.html#Insert-mode&quot;&gt;Insert mode&lt;&#x2F;a&gt;, put an opening square bracket &#x27;[&#x27;, before going back to Normal mode once again with &lt;kbd&gt;Escape&lt;&#x2F;kbd&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Then, this time, we go to the end of the last visual selection with &lt;code&gt; `&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;We use &lt;code&gt;l&lt;&#x2F;code&gt; to move the cursor one unit to the right
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;This is needed because the opening square bracket we inserted earlier has shifted the last visual selection. If we did not do that, we would be one character off&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;We proceed to append the &#x27;]&#x27; and &#x27;(&#x27; characters with &lt;code&gt;a](&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;While still in Insert mode, we use &lt;code&gt;&amp;lt;C-r&amp;gt;+&lt;&#x2F;code&gt; to paste the content of the &lt;code&gt;+&lt;&#x2F;code&gt; register, which is the system clipboard (where our URL is stored)
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;vimhelp.org&#x2F;cmdline.txt.html#c_%3CC-R%3E&quot;&gt;&lt;code&gt;:help c_&amp;lt;C-R&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; to learn more&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Finally, we insert the closing parenthesis and go back to Normal mode with &lt;code&gt;)&amp;lt;Esc&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;That was not so bad, was it?&lt;&#x2F;p&gt;
&lt;h1 id=&quot;complementary-keymap-for-normal-mode&quot;&gt;Complementary keymap for Normal mode&lt;a class=&quot;post-anchor&quot; href=&quot;#complementary-keymap-for-normal-mode&quot; aria-label=&quot;Anchor link for: complementary-keymap-for-normal-mode&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;The previous keymap works great for any visual selection.
It allows you to select some text and apply a markdown link to it.&lt;&#x2F;p&gt;
&lt;p&gt;But what if you only want to add a link to a single word?
Do we really want to bother with a visual selection for that?
I don&#x27;t think so. Time to create a second keymap:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;lua&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span&gt;vim.keymap.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;set&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;quot;n&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;3&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;quot;&amp;lt;leader&amp;gt;l&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;    &amp;#39;&amp;quot;9ciw[]&amp;lt;Esc&amp;gt;&amp;quot;9Pf]a(&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;5&lt;&#x2F;span&gt;&lt;span&gt;    { desc&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;Apply markdown [L]ink on current word&amp;quot; &lt;&#x2F;span&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot; style=&quot;color: #7F849C;&quot;&gt;6&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;It looks very similar to our first keymap with a few tweaks here and there.
The first difference we notice is the first argument &lt;code&gt;&quot;n&quot;&lt;&#x2F;code&gt; which tells Neovim to enable this keymap in Normal mode only.
The key binding has not changed, we still want to use &lt;code&gt;&amp;lt;leader&amp;gt;l&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This means both keymaps use the same key binding, the only difference is the Vim mode you are in.
This is what determines which keymap to call.&lt;&#x2F;p&gt;
&lt;p&gt;Okay, let&#x27;s go over the motions now:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot;9ciw[]&amp;lt;Esc&amp;gt;&amp;quot;9Pf]a(&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If you pay a closer look to the last part, you will notice that it is the same as before:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;a](&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;So the only motions that differ are the ones prior to inserting the closing square bracket &#x27;]&#x27;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot;9ciw[]&amp;lt;Esc&amp;gt;&amp;quot;9Pf]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;New motions to break down. &lt;strong&gt;Exciting!&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Let&#x27;s start with &lt;code&gt;&quot;9ciw&lt;&#x2F;code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&quot;9&lt;&#x2F;code&gt; tells Neovim we want to operate against the &lt;code&gt;9&lt;&#x2F;code&gt; register.
There is no reason for using this specific register, you may use another one if you prefer.
I picked this one arbitrarily.
Just make sure not to pick register &lt;code&gt;+&lt;&#x2F;code&gt; because our URL is stored in there&lt;&#x2F;li&gt;
&lt;li&gt;Then, &lt;code&gt;ciw&lt;&#x2F;code&gt; will replace &lt;strong&gt;inside&lt;&#x2F;strong&gt; the current word and store the deleted text to register &lt;code&gt;9&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The previous motion put us in Insert mode, we can now insert square brackets &lt;code&gt;[]&lt;&#x2F;code&gt; and go back to Normal mode with &lt;kbd&gt;Escape&lt;&#x2F;kbd&gt;&lt;&#x2F;li&gt;
&lt;li&gt;The awaited return of register &lt;code&gt;9&lt;&#x2F;code&gt;! We use &lt;code&gt;&quot;9P&lt;&#x2F;code&gt; to paste our deleted word to the &lt;strong&gt;left&lt;&#x2F;strong&gt; of the cursor
&lt;ul&gt;
&lt;li&gt;Had we use &lt;code&gt;p&lt;&#x2F;code&gt; instead of &lt;code&gt;P&lt;&#x2F;code&gt;, and the text would have been pasted outside of the square brackets &lt;em&gt;(which is not we want!)&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Finally, we move the cursor on the next closing square bracket with &lt;code&gt;f]&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Then, it&#x27;s just the last part which is exactly the same as before: &lt;code&gt;a](&amp;lt;C-r&amp;gt;+)&amp;lt;Esc&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So now, if we move the cursor on any word in Normal mode and hit &lt;code&gt;&amp;lt;leader&amp;gt;l&lt;&#x2F;code&gt;, it will automatically format it as a Markdown link. Pretty cool!&lt;&#x2F;p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;a class=&quot;post-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;Okay, this might seem like a lot just to save a few milliseconds here and there. Was it really worth it?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;YES!&lt;&#x2F;strong&gt;
&lt;em&gt;(I have used &lt;code&gt;&amp;lt;leader&amp;gt;l&lt;&#x2F;code&gt; a lot to write this article already)&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Maybe it will take a lot of time before this keybind actually pays off.
But overall, I am having so much fun just trying to solve these kind of problems in Neovim.
This is what makes using Neovim so enjoyable to me.&lt;&#x2F;p&gt;
&lt;p&gt;I think having fun is the best remedy to avoid burnouts.
For me, I get my fun from using Neovim and the terminal, customizing my environment to be exactly how I want it.
It&#x27;s probably different for you but I hope you get your fun from somewhere else at least.&lt;&#x2F;p&gt;
&lt;p&gt;I hope I made you learn some neat Vim tricks!
If you liked this article, please consider sharing it around to any other vim addicts.
If you want to take a peek at my Neovim config, I keep it on GitHub: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Coko7&#x2F;neovim-config&quot;&gt;coko7&#x2F;neovim-config&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Feel free to check out my other articles too!
Until next time 👋&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;:wqa&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
