Learning OCaml: Working with Records
Records are one of those things that look almost identical across ML-family languages, so I didn’t expect many surprises when I started using them in OCaml. For the most part I was right – but ther...
Records are one of those things that look almost identical across ML-family languages, so I didn’t expect many surprises when I started using them in OCaml. For the most part I was right – but ther...
Over the past year I’ve been spending a lot of time building Tree-sitter-powered major modes for Emacs – clojure-ts-mode (as co-maintainer), neocaml (from scratch), and asciidoc-mode (also from scr...
A few years ago I wrote about setting up Emacs for OCaml development. Back then the recommended stack was tuareg-mode + merlin-mode, with Merlin providing the bulk of the IDE experience. A lot has ...
Every now and then someone asks me how to learn Vim.1 My answer is always the same: it’s simpler than you think, but it takes longer than you’d like. Here’s my bulletproof 3-step plan. Step 1: Lea...
How to set up auto-saving in Vim, from simple autocommands to plugins, and why you might not need any of it.
Comparing Vim's two main approaches to shell access -- suspending with Ctrl-Z and the built-in terminal emulator.
You don't need a massive .vimrc to be productive in Vim.
All the ways to add blank lines above or below the cursor in Vim
Ten CLI tools recommended by Claude Code itself, ranked by how much they'd boost its productivity.
A tour of all Vim paste commands in Normal and Insert mode, including lesser-known variants for indentation, cursor position, and raw pasting.