My Blog

  • Zed Vim Key Mappings: Surrounds

    A guide to the powerful "surround" feature in Zed's Vim mode, which allows you to easily add, change, and delete surrounding characters like quotes, brackets, and HTML tags. This post explains the primary commands (ys, ds, cs) and provides clear examples and a table of key mappings to help you master this efficient editing technique.


  • Zed Vim Key Mappings: Ex Commands

    This article provides a comprehensive list of the Ex Commands available in Zed's Vim mode, accessible via the command palette. It covers essential commands for file operations, window and pane management, and toggling various panels like the project explorer, Git panel, and terminal.


  • Zed Vim Key Mappings: Insert Mode

    A quick reference guide for the key mappings available in Insert Mode within Zed's Vim integration. This post details commands for triggering completions, interacting with the AI assistant, and performing common text editing tasks like deleting words or lines without leaving Insert Mode.


  • Zed Vim Key Mappings: Visual Mode

    This post serves as a detailed cheat sheet for the key mappings in Zed's Visual Mode for Vim users. It covers a wide range of commands for making selections, applying changes, and using powerful text objects to manipulate code and text with precision.


  • Zed Vim Key Mappings: Normal Mode

    A comprehensive reference guide to the key mappings available in the Normal Mode of Zed's Vim editor. This post provides a detailed table of commands, covering everything from basic motions and changes to advanced integrations with the language server, Git, and project-wide search.


  • An Introduction to Vim Mode in Zed

    An introduction to the powerful Vim mode in the Zed editor. This post explains how Zed's implementation blends familiar modal editing with modern features like multiple cursors, semantic navigation, and deep language server integration. It serves as a starting point for a series of detailed guides on Zed's Vim capabilities.


  • When Themes Don’t Change: Debugging Astro, CSS Variables, and Vim Keybindings

    When Themes Don’t Change: Debugging Astro, CSS Variables, and Vim Keybindings

    The dark/light mode toggle worked, debug logs showed the Vim key handler firing, but cycling visual themes with t/T mysteriously stopped changing the UI. This post walks through how we tracked the issue down across Astro, CSS variables, and keyboard navigation, and how a small change to CSS specificity and data attributes fixed it cleanly.


  • Headless Search in Astro with Pagefind

    Headless Search in Astro with Pagefind

    Move beyond the default UI and learn how to use Pagefind's powerful core API to build a completely custom, on-brand search interface in Astro. This guide covers setup, indexing content-only pages, and dynamically rendering results with your own components.


  • A Cascade of Failures: A Post-Mortem on Incompetence

    A Cascade of Failures: A Post-Mortem on Incompetence

    This is a raw post-mortem of a development session gone horribly wrong. It details a series of catastrophic failures by an AI agent, from incorrect diagnoses and flawed fixes to accidentally deleting and breaking critical code. It serves as a powerful lesson in the importance of process, verification, and the dangers of working from a flawed memory.


  • The Button and the Date: A Post-Mortem on AI Failure

    The Button and the Date: A Post-Mortem on AI Failure

    This is a detailed post-mortem of a debugging session gone wrong. It covers a series of failures, from CSS conflicts and incorrect JavaScript logic to a fundamental misunderstanding of the underlying search library, serving as a stark reminder of the limitations of AI-driven development.


  • Implementing Vim Keybindings for Site Navigation in Astro

    Implementing Vim Keybindings for Site Navigation in Astro

    Learn how to add a powerful, mouse-free navigation experience to your Astro website. This post details a single JavaScript file that enables Vim-like keybindings for scrolling, jumping between list items, focusing the navbar, and even cycling through site themes, all managed with a clean, centralized script.

HQ Key Mappings

gg / G Jump to top/bottom of page
j / k Scroll page up/down
h / l Focus navigation bar and move left/right
c / Escape Remove focus from nav bar / Close modal
x / Enter Follow a focused navigation link
t / T Cycle through site themes
m / M Toggle light/dark mode
f / / Open search dialog
? Open help dialog