<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vim on Brandon Pugh&#39;s Blog</title>
    <link>https://www.brandonpugh.com/tags/vim/</link>
    <description>Recent content in Vim on Brandon Pugh&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Sun, 06 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.brandonpugh.com/tags/vim/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quickly Fix A Misspelled Word</title>
      <link>https://www.brandonpugh.com/til/vim/quickly-fix-misspelled-word/</link>
      <pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/quickly-fix-misspelled-word/</guid>
      <description>&lt;p&gt;I just learned that you can have automatically fix a misspelled word with the top suggestion by typing:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vim&#34; data-lang=&#34;vim&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;z&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is opposed to the regular &lt;code&gt;z=&lt;/code&gt; command for opening the regular list of spelling correction options.&lt;/p&gt;
&lt;p&gt;Like &lt;a href=&#34;https://github.com/jbranchaud/til/blob/master/vim/quickly-fix-a-misspelled-word.md&#34;&gt;Josh&lt;/a&gt; who I learned this from, I usually pick the first option so this is a bit more convenient.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/quickly-fix-misspelled-word/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Vim for React Developers</title>
      <link>https://www.brandonpugh.com/links/vim-for-react-developers/</link>
      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/links/vim-for-react-developers/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://vimforreactdevs.com/&#34;&gt;Vim for React Developers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For anyone who is vim-curious, I think this is a cool approach to learning practical uses for vim.
The &amp;ldquo;course&amp;rdquo; is just a react source file (&lt;a href=&#34;https://github.com/leerob/vim-for-react-devs/blob/main/public/course.tsx&#34;&gt;direct link&lt;/a&gt;) with the instructions as comments describing how to modify the various bits of code throughout the file.
Even though the file is a react component, examples are largely just as applicable to most programming languages (especially those with c-like syntax) as well as editing regular HTML.&lt;/p&gt;
&lt;p&gt;I would suggest though, if you&amp;rsquo;ve never used vim before that an easier setup to dip your toes in would be to install to the &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscodevim.vim&#34;&gt;vim extension&lt;/a&gt; for vscode (or for &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=JaredParMSFT.VsVim2022Preview&#34;&gt;Visual Studio&lt;/a&gt;).&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/links/vim-for-react-developers/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Move a line with :m</title>
      <link>https://www.brandonpugh.com/til/vim/move-line/</link>
      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/move-line/</guid>
      <description>&lt;p&gt;Today I learned that you can move the current line up or down with &lt;code&gt;:m&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;:m +1 - moves down 1 line&lt;/p&gt;
&lt;p&gt;:m -2 - move up 2 lines&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m used to using &lt;code&gt;dd&lt;/code&gt; followed by a movement and then &lt;code&gt;p&lt;/code&gt; but I may try this alternate method.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/move-line/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Pressing `%` will also jump to the matching HTML tag</title>
      <link>https://www.brandonpugh.com/til/vim/jump-matching-html-tag/</link>
      <pubDate>Sat, 15 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/jump-matching-html-tag/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve used &lt;code&gt;%&lt;/code&gt; for some time now in vim, but I only just today learned that it not only jumps to a matching bracket or parenthesis, but also a matching &lt;strong&gt;HTML tag&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Unfortunately this doesn&amp;rsquo;t seem to work with vscode-vim but it does work with vscode-neovim.&lt;/p&gt;
&lt;p&gt;You could also accomplish this by assigning a hotkey to the &amp;ldquo;Go to matching pair&amp;rdquo; Emmet command.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/jump-matching-html-tag/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Split lines in Vim</title>
      <link>https://www.brandonpugh.com/til/vim/split-lines/</link>
      <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/split-lines/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve long wanted a command that was the opposite of &lt;code&gt;J&lt;/code&gt; (join lines), and I finally took the time to see if it&amp;rsquo;s possible.
Turns out there a few solutions.&lt;/p&gt;
&lt;p&gt;The simplest way if you want to split on a whitespace character is to just type &lt;code&gt;r&lt;/code&gt; &lt;code&gt;enter&lt;/code&gt;.
I can&amp;rsquo;t believe I never thought of that before.&lt;/p&gt;
&lt;p&gt;You can also install the &lt;a href=&#34;https://github.com/drzel/vim-split-line&#34;&gt;vim-split-line&lt;/a&gt; plugin, which adds the &lt;code&gt;:SplitLine&lt;/code&gt; command.
This command will split the current line at the cursor position.&lt;/p&gt;
&lt;p&gt;But, as they note in their README, you can also use the following command to split the line at the cursor position:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vim&#34; data-lang=&#34;vim&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;nnoremap&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;S&lt;/span&gt; :&lt;span class=&#34;nx&#34;&gt;keeppatterns&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;substitute&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/\s*\%#\s*/&lt;/span&gt;\&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;/&lt;span class=&#34;nx&#34;&gt;e&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;normal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;!&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;==&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;CR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/split-lines/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>b is an Alias for Parenthesis in Vim</title>
      <link>https://www.brandonpugh.com/til/vim/text-object-alias/</link>
      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/text-object-alias/</guid>
      <description>&lt;p&gt;I just discovered that &lt;code&gt;b&lt;/code&gt; and &lt;code&gt;B&lt;/code&gt; are aliases for the &lt;code&gt;()&lt;/code&gt; and &lt;code&gt;{}&lt;/code&gt; text objects respectively.&lt;/p&gt;
&lt;p&gt;This is a nice little builtin improvement since I frequently find myself selecting or changing withing parenthesis and &lt;code&gt;cib&lt;/code&gt; is nicer to type than &lt;code&gt;ci(&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I only wished I&amp;rsquo;d discovered this years ago!&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/text-object-alias/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Vim sets auto marks</title>
      <link>https://www.brandonpugh.com/til/vim/auto-marks/</link>
      <pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/auto-marks/</guid>
      <description>&lt;p&gt;Today I learned that Vim has some special marks which it sets automatically:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Command&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;`.&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump to position where last change occurred in current buffer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;`&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump to position where last exited current buffer&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;`0&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump to position in last file edited (when exited Vim)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;`1&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;like &lt;code&gt;`0&lt;/code&gt; but the previous file (also &lt;code&gt;`2&lt;/code&gt; etc)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&#39;&#39;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump back (to line in current buffer where jumped from)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;``&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump back (to position in current buffer where jumped from)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&#39;[&lt;/code&gt; or &lt;code&gt;&#39;]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump to beginning/end of previously changed or yanked text&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;&#39;&amp;lt;&lt;/code&gt; or &lt;code&gt;&#39;&amp;gt;&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;jump to beginning/end of last visual selection&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The funny thing is VsVim displays these in the gutter by default and I never knew what the symbols meant.
Vscode-vim has an option to display marks in the gutter but only the regular marks and not these.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/auto-marks/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Git rebase.abbreviateCommands</title>
      <link>https://www.brandonpugh.com/til/git/git-abbreviate-commands/</link>
      <pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/git/git-abbreviate-commands/</guid>
      <description>&lt;p&gt;This is probably a very niche use case, but I learned today that you can abbreviate commands that git populates in the todo list during an interactive rebase.&lt;/p&gt;
&lt;p&gt;So instead of this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    pick deadbee The oneline of the commit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    pick fa1afe1 The oneline of the next commit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;It&amp;rsquo;ll look like this:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    p deadbee The oneline of the commit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    p fa1afe1 The oneline of the next commit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can enable this with &lt;code&gt;git config --global rebase.abbreviateCommands true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To be clear, you can always use the abbreviated commands, but since I use Vim to edit the list, it makes it slightly more convenient to edit the commands.&lt;/p&gt;
&lt;p&gt;For instance, before when the command was &lt;code&gt;pick&lt;/code&gt;, and I wanted to squash a commit, I would jump to the line, type &lt;code&gt;ciw&lt;/code&gt; to delete the word &lt;code&gt;pick&lt;/code&gt; and enter insert mode, then type &lt;code&gt;s&lt;/code&gt; and then &lt;code&gt;esc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;But when the command is &lt;code&gt;p&lt;/code&gt;, I can just type &lt;code&gt;r&lt;/code&gt; and &lt;code&gt;s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So if you&amp;rsquo;re counting, that&amp;rsquo;s &lt;strong&gt;three&lt;/strong&gt; fewer keystrokes for each command. Mission. Accomplished.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/git/git-abbreviate-commands/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Quit vim with :x</title>
      <link>https://www.brandonpugh.com/til/vim/quit-with-x/</link>
      <pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/quit-with-x/</guid>
      <description>&lt;p&gt;People like to joke that vim is impossible to exit, but I just discovered that there are actually &lt;a href=&#34;https://hashrocket.com/blog/posts/how-to-quit-vim&#34;&gt;several different ways&lt;/a&gt; to quit and &lt;code&gt;:x&lt;/code&gt; is my new favorite.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;:x&lt;/code&gt; command will save and quit but it differs from &lt;code&gt;:wq&lt;/code&gt; in that it will only write the file to disc if there were any changes so the &lt;em&gt;modified date&lt;/em&gt; of the file won&amp;rsquo;t get updated unnecessarily.&lt;/p&gt;
&lt;p&gt;This seems like the preferred behavior most of the time.
That coupled with the fact that it&amp;rsquo;s slightly faster to type has made it my new default way to exit vim.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/quit-with-x/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Open a URL in vim with `gx`</title>
      <link>https://www.brandonpugh.com/til/vim/vim-open-url/</link>
      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/vim-open-url/</guid>
      <description>&lt;p&gt;Pressing &lt;code&gt;gx&lt;/code&gt; while over a URL in vim will open that url.&lt;/p&gt;
&lt;p&gt;Confirmed it also works in vscode-vim.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/vim-open-url/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Format a paragraph</title>
      <link>https://www.brandonpugh.com/til/vim/format-paragraph-hard-wrap/</link>
      <pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/format-paragraph-hard-wrap/</guid>
      <description>&lt;p&gt;In vim you can &lt;a href=&#34;https://vim.fandom.com/wiki/Automatic_formatting_of_paragraphs&#34;&gt;format a paragraph&lt;/a&gt; of prose text with &lt;code&gt;gq&lt;/code&gt;.
This basically will hard-wrap the lines to the configured &lt;code&gt;textwidth&lt;/code&gt; for the filetype.&lt;/p&gt;
&lt;p&gt;I use this all the time when writing git commit messages so the body of the message has the &lt;a href=&#34;https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html&#34;&gt;recommended&lt;/a&gt; max line length of 72.&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/format-paragraph-hard-wrap/feed&quot;&gt;
      </description>
    </item>
    
    <item>
      <title>Bram Moolenaar has passed</title>
      <link>https://www.brandonpugh.com/til/vim/vim-boss-bram/</link>
      <pubDate>Sat, 05 Aug 2023 00:00:00 +0000</pubDate>
      <guid>https://www.brandonpugh.com/til/vim/vim-boss-bram/</guid>
      <description>&lt;p&gt;I just found out &lt;a href=&#34;https://news.ycombinator.com/item?id=37011324&#34;&gt;about the passing&lt;/a&gt; of Bram Moolenaar, the core maintainer of Vim for the last 30 years 😞&lt;/p&gt;
&lt;p&gt;I like what a commenter posted:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Vim has soul. It is that chisel you inherited from your grandpa that you keep using. It fits well in your grip and is comfortable, even though it lacks the soft rubber that the new ones in the store have. It&amp;rsquo;s a tool with its own history.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vim was the first real editor I used. I learned it on the CS department shared Unix server by following the instructions on a paper handout our TA gave us&amp;hellip; and ever since I haven&amp;rsquo;t been able to type in anything without &lt;code&gt;hjkl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://neovim.io/news/2023/08&#34;&gt;Vim Boss&lt;/a&gt;&lt;/p&gt;

       &lt;hr&gt; &lt;p&gt;Thank you for keeping RSS alive. You&#39;re awesome.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;mailto:blogrss@bpugh.dev&#34;&gt;Reply by email&lt;/a&gt;&lt;/p&gt;
        &lt;img src=&quot;https://blog.bpugh.workers.dev/cdn/images?p=/til/vim/vim-boss-bram/feed&quot;&gt;
      </description>
    </item>
    
  </channel>
</rss>