<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Productivity - Tag - Vindrin</title><link>https://vindrin.top/tags/productivity/</link><description>Productivity - Tag - Vindrin</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>vindrin@outlook.com (Vindrin)</managingEditor><webMaster>vindrin@outlook.com (Vindrin)</webMaster><lastBuildDate>Wed, 01 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vindrin.top/tags/productivity/" rel="self" type="application/rss+xml"/><item><title>VS Code Shortcuts Cheatsheet</title><link>https://vindrin.top/docs/vscode-shortcuts/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/docs/vscode-shortcuts/</guid><description><![CDATA[<h1 id="vs-code-shortcuts-cheatsheet">VS Code Shortcuts Cheatsheet</h1>
<p>These are the shortcuts that actually matter — the ones I use every day.</p>
<h2 id="essential">Essential</h2>
<table>
  <thead>
      <tr>
          <th>Shortcut</th>
          <th>Action</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>Ctrl + P</code></td>
          <td>Quick open file</td>
      </tr>
      <tr>
          <td><code>Ctrl + Shift + P</code></td>
          <td>Command palette</td>
      </tr>
      <tr>
          <td>`Ctrl + ``</td>
          <td>Toggle terminal</td>
      </tr>
      <tr>
          <td><code>Ctrl + B</code></td>
          <td>Toggle sidebar</td>
      </tr>
      <tr>
          <td><code>Ctrl + ,</code></td>
          <td>Open settings</td>
      </tr>
  </tbody>
</table>
<h2 id="editing">Editing</h2>
<table>
  <thead>
      <tr>
          <th>Shortcut</th>
          <th>Action</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>Alt + ↑/↓</code></td>
          <td>Move line up/down</td>
      </tr>
      <tr>
          <td><code>Shift + Alt + ↑/↓</code></td>
          <td>Duplicate line</td>
      </tr>
      <tr>
          <td><code>Ctrl + /</code></td>
          <td>Toggle comment</td>
      </tr>
      <tr>
          <td><code>Ctrl + D</code></td>
          <td>Select next occurrence</td>
      </tr>
      <tr>
          <td><code>Ctrl + Shift + L</code></td>
          <td>Select all occurrences</td>
      </tr>
      <tr>
          <td><code>F2</code></td>
          <td>Rename symbol</td>
      </tr>
      <tr>
          <td><code>Ctrl + .</code></td>
          <td>Quick fix</td>
      </tr>
  </tbody>
</table>
<h2 id="navigation">Navigation</h2>
<table>
  <thead>
      <tr>
          <th>Shortcut</th>
          <th>Action</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>Ctrl + G</code></td>
          <td>Go to line</td>
      </tr>
      <tr>
          <td><code>F12</code></td>
          <td>Go to definition</td>
      </tr>
      <tr>
          <td><code>Alt + F12</code></td>
          <td>Peek definition</td>
      </tr>
      <tr>
          <td><code>Ctrl + -</code></td>
          <td>Go back</td>
      </tr>
      <tr>
          <td><code>Ctrl + Shift + -</code></td>
          <td>Go forward</td>
      </tr>
  </tbody>
</table>
<h2 id="multi-cursor">Multi-cursor</h2>
<table>
  <thead>
      <tr>
          <th>Shortcut</th>
          <th>Action</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>Alt + Click</code></td>
          <td>Add cursor</td>
      </tr>
      <tr>
          <td><code>Ctrl + Alt + ↑/↓</code></td>
          <td>Add cursor above/below</td>
      </tr>
      <tr>
          <td><code>Ctrl + Shift + Alt + ↑/↓</code></td>
          <td>Column select</td>
      </tr>
  </tbody>
</table>
<h2 id="search">Search</h2>
<table>
  <thead>
      <tr>
          <th>Shortcut</th>
          <th>Action</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>Ctrl + F</code></td>
          <td>Find in file</td>
      </tr>
      <tr>
          <td><code>Ctrl + H</code></td>
          <td>Find &amp; replace</td>
      </tr>
      <tr>
          <td><code>Ctrl + Shift + F</code></td>
          <td>Find in all files</td>
      </tr>
  </tbody>
</table>]]></description></item><item><title>Markdown Note Sync CLI</title><link>https://vindrin.top/project/markdown-note-sync/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/project/markdown-note-sync/</guid><description><![CDATA[<h1 id="markdown-note-sync-cli">Markdown Note Sync CLI</h1>
<p>Keep your notes in Markdown. Sync them anywhere. No proprietary formats.</p>
<h2 id="problem">Problem</h2>
<p>I take notes in Markdown across multiple machines. I wanted something simpler than Obsidian Sync — just a CLI that diffs and pushes changes.</p>
<h2 id="commands">Commands</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Initialize sync config</span>
</span></span><span class="line"><span class="cl">mnotes init --remote user@server:/notes
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Sync (two-way)</span>
</span></span><span class="line"><span class="cl">mnotes sync
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Show diff before syncing</span>
</span></span><span class="line"><span class="cl">mnotes diff</span></span></code></pre></div></div>
<h2 id="how-it-works">How it works</h2>
<ol>
<li>Hash every local <code>.md</code> file</li>
<li>Compare with remote hash index</li>
<li>Push new/changed files, pull remote-only files</li>
<li>Conflict = keep both with timestamp suffix</li>
</ol>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li><code>paramiko</code> — SSH</li>
<li><code>watchdog</code> — optional auto-sync on file change</li>
</ul>
<h2 id="status">Status</h2>
<p><code>v0.2.1</code> — stable for two machines. Three-way sync is future work.</p>]]></description></item><item><title>My Neovim Config Journey</title><link>https://vindrin.top/posts/neovim-config/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/posts/neovim-config/</guid><description><![CDATA[<h1 id="my-neovim-config-journey">My Neovim Config Journey</h1>
<p>I switched to Neovim six months ago. Here&rsquo;s what I learned.</p>
<h2 id="why-bother">Why bother?</h2>
<p>VS Code is fine. But when you open it 40 times a day, the startup time adds up. Neovim starts in under 50ms and runs everywhere — including SSH sessions.</p>
<h2 id="my-setup-stack">My setup stack</h2>
<ul>
<li><strong>lazy.nvim</strong> — plugin manager</li>
<li><strong>nvim-lspconfig</strong> — LSP for Python, JS, Lua</li>
<li><strong>nvim-cmp</strong> — autocomplete</li>
<li><strong>Telescope</strong> — fuzzy finder (replaces Ctrl+P)</li>
<li><strong>nvim-treesitter</strong> — better syntax highlighting</li>
</ul>
<h2 id="the-learning-curve">The learning curve</h2>
<p>Week 1: frustration. Week 2: muscle memory. Week 3: you stop thinking about keystrokes.</p>]]></description></item></channel></rss>