:buffer article

Buffers, Not Tabs

Most blog themes think in pages. Linewise thinks in buffers.

That small shift changes the interface. A homepage can become :ls, an archive can become :oldfiles, tags can become marks, and search can behave like :vimgrep feeding a quickfix list.

The best version of this idea is restrained. It uses Vim as an information architecture, then lets typography do the real work.

type BufferKind = "post" | "quickfix" | "help";

export function openBuffer(kind: BufferKind, target: string) {
  if (kind === "quickfix") {
    return `:vimgrep ${target}`;
  }

  return `:buffer ${target}`;
}