Tools

A non-exhaustive list of tools I find useful.

Command line

  • bat – Replaces cat.
  • Cscope – A code search tool for C and other languages.
  • exa – Replaces ls.
  • fd – A modern alternative to find.
  • fzf – A fuzzy-finder for files and directories.
  • htop – Replaces top.
  • HTTPie – A HTTP client.
  • icdiff – Replaces diff.
  • mosh – A robust replacement for ssh.
  • ncdu – Disk usage analyser; replaces du.
  • neovim – A text editor.
  • pass – A local password manager based on gpg.
  • pdfmerge – Merge, splice, and rotate PDF files.
  • qmv – Quickly rename files in a text editor.
  • ripgrep – A text search tool; replaces grep.
  • zsh – A shell.

zsh plugins

(Neo)vim plugins

I use vim-plug to manage vim plugins. You can find all of the plugins I use here.

Python development

I typically write Python in terminal vim. I previously used pyenv and poetry, but now I use uv for everything, including version management, virtual environments, publishing packages, and installing isolated tools.

Graphics

  • ipe – 2D vector graphics editor.
  • Pinta – Simple image editor similar to Microsoft Paint.

Convex programming

  • cvxpy – Model and solve general convex optimization problems in Python.
  • qpsolvers – Quickly test out different quadratic programming solvers in Python.