Vim motions and text objects, the actual language

Motions and text objects are where Vim’s productivity actually lives. This post is a full reference — every motion category, every text object, the counts and repeats that combine with them, and worked examples showing why ‘change inside quotes’ is the command you’ll type ten times a day. Second in a four-post series on Vim, following the modal-editing intro and preceding the deep dives on registers and macros.

August 9, 2026 · 14 min · Omar Crosby

Modal editing in Vim, from scratch

Modal editing is not a keyboard shortcut scheme. It’s a small language for describing text edits, and once you see it as a language the rest of Vim stops being a pile of trivia. First in a four-post series: this one covers the four core modes, the verb-motion-object grammar, and the smallest set of commands that gets a new user productive by the end of the afternoon. Companion posts go deep on motions and text objects, registers, and macros.

August 9, 2026 · 12 min · Omar Crosby

grep, sed, and awk: a practical introduction for Mac users

You export a report from some web app and it hands you a 40,000-line CSV. You need three columns out of it, only the rows from last Tuesday, with one misspelled city name fixed throughout. You could open it in a spreadsheet, wait for the beachball, scroll, sort, find-and-replace, and export again. Or you could describe the whole job in one line of text and get the answer before the spreadsheet finishes loading. ...

August 8, 2026 · 10 min · Omar Crosby

The anatomy of an SDK, in Go

A walkthrough of the surface an SDK exposes, in seven parts, with idiomatic Go for every piece: the client constructor with functional options, resource groupings that mirror the caller’s mental model, typed requests and responses, typed errors with request IDs and errors.As, first-class pagination via iter.Seq2, streaming and retries and instrumentation, and the docs/samples/changelog trio that finishes the surface. Companion to the SDK fundamentals post.

August 7, 2026 · 8 min · Omar Crosby

What makes a good SDK

An eight-point rubric for judging whether an SDK is any good, each criterion paired with a real currently-shipping SDK that gets it right — Stripe (idiomatic hand-crafted per language, typed errors with request IDs, exceptional docs), AWS SDK for Go v2 (boring auth via the credential-provider chain, paginators as a distinct type), Anthropic and OpenAI (sensible retry defaults, streaming), Stainless-generated SDKs (types from a single spec), GitHub Octokit (honest versioning). Followed by the two-sided value proposition — what building on those axes actually buys for the vendor and the caller.

August 7, 2026 · 15 min · Omar Crosby