<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>In Rust We Trust 🦀 - neovim</title>
      <link>https://nikolaishelekhov.com</link>
      <description>Nikolai is a Rust software engineer building high-performance systems, backend and blockchain infrastructure.</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://nikolaishelekhov.com/tags/neovim/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Tue, 03 Feb 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Why Vim Felt Inevitable</title>
          <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>
          <author>Nikolai Shelekhov</author>
          <link>https://nikolaishelekhov.com/blog/why-vim/</link>
          <guid>https://nikolaishelekhov.com/blog/why-vim/</guid>
          <description xml:base="https://nikolaishelekhov.com/blog/why-vim/">&lt;p&gt;I didn’t switch to Vim because it was trendy.&lt;br &#x2F;&gt;
I switched because everything else started to feel wrong.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;it-started-with-friction&quot;&gt;It Started With Friction&lt;&#x2F;h2&gt;
&lt;p&gt;Over time, I became increasingly sensitive to small inefficiencies:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Reaching for the mouse&lt;&#x2F;li&gt;
&lt;li&gt;Breaking typing flow&lt;&#x2F;li&gt;
&lt;li&gt;Context switching between tools&lt;&#x2F;li&gt;
&lt;li&gt;UI-heavy editors fighting my focus&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Individually, these are minor.&lt;br &#x2F;&gt;
Collectively, they compound.&lt;&#x2F;p&gt;
&lt;p&gt;As someone who cares about systems performance at the kernel and runtime level, it felt inconsistent to tolerate inefficiency in my own development workflow.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-ergonomics-shift&quot;&gt;The Ergonomics Shift&lt;&#x2F;h2&gt;
&lt;p&gt;The turning point wasn’t Vim itself — it was ergonomics.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Moving to compact keyboards&lt;&#x2F;li&gt;
&lt;li&gt;Optimizing for home-row typing&lt;&#x2F;li&gt;
&lt;li&gt;Reducing hand movement&lt;&#x2F;li&gt;
&lt;li&gt;Eliminating unnecessary reach&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Once you train your hands to stay anchored, the mouse becomes an interruption.&lt;&#x2F;p&gt;
&lt;p&gt;Traditional editors assume pointer interaction. Vim assumes intent expressed through motion.&lt;&#x2F;p&gt;
&lt;p&gt;That difference is fundamental.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;modal-editing-and-systems-thinking&quot;&gt;Modal Editing and Systems Thinking&lt;&#x2F;h2&gt;
&lt;p&gt;What clicked for me was this:&lt;&#x2F;p&gt;
&lt;p&gt;Vim treats text editing like a language.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Verbs (&lt;code&gt;d&lt;&#x2F;code&gt;, &lt;code&gt;c&lt;&#x2F;code&gt;, &lt;code&gt;y&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Motions (&lt;code&gt;w&lt;&#x2F;code&gt;, &lt;code&gt;}&lt;&#x2F;code&gt;, &lt;code&gt;t(&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Objects (&lt;code&gt;iw&lt;&#x2F;code&gt;, &lt;code&gt;ap&lt;&#x2F;code&gt;, etc.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;You compose actions instead of triggering commands.&lt;&#x2F;p&gt;
&lt;p&gt;That composability mirrors how I think about system design:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Small primitives&lt;&#x2F;li&gt;
&lt;li&gt;Clear contracts&lt;&#x2F;li&gt;
&lt;li&gt;Composable building blocks&lt;&#x2F;li&gt;
&lt;li&gt;Zero unnecessary abstraction&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It felt closer to Rust than to an IDE.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-neovim-not-just-vim&quot;&gt;Why Neovim (Not Just Vim)&lt;&#x2F;h2&gt;
&lt;p&gt;I eventually moved to Neovim for practical reasons:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Native LSP integration&lt;&#x2F;li&gt;
&lt;li&gt;Async plugin model&lt;&#x2F;li&gt;
&lt;li&gt;Lua configuration&lt;&#x2F;li&gt;
&lt;li&gt;Tight terminal integration&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;I wiped prebuilt configs and built my setup from scratch.&lt;&#x2F;p&gt;
&lt;p&gt;Not because prebuilt configs are bad —&lt;br &#x2F;&gt;
but because understanding your tools matters.&lt;&#x2F;p&gt;
&lt;p&gt;When your editor becomes infrastructure, you should know how it works.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-real-benefit&quot;&gt;The Real Benefit&lt;&#x2F;h2&gt;
&lt;p&gt;The biggest gain wasn’t speed.&lt;&#x2F;p&gt;
&lt;p&gt;It was flow.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Fewer context switches&lt;&#x2F;li&gt;
&lt;li&gt;No mouse dependency&lt;&#x2F;li&gt;
&lt;li&gt;Terminal + editor unified&lt;&#x2F;li&gt;
&lt;li&gt;Predictable behavior&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The editor stopped being a UI and became an extension of intent.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;is-it-for-everyone&quot;&gt;Is It For Everyone?&lt;&#x2F;h2&gt;
&lt;p&gt;No.&lt;&#x2F;p&gt;
&lt;p&gt;Vim has a learning curve.
It requires patience.
It requires deliberate practice.&lt;&#x2F;p&gt;
&lt;p&gt;But if you:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Care about ergonomics&lt;&#x2F;li&gt;
&lt;li&gt;Think in composable primitives&lt;&#x2F;li&gt;
&lt;li&gt;Prefer keyboard-driven workflows&lt;&#x2F;li&gt;
&lt;li&gt;Enjoy understanding your tooling deeply&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Then it may feel less like a choice —&lt;br &#x2F;&gt;
and more like inevitability.&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
