Programming Setup
System
My computer is a MacBook Air (M1, 2020) with 8 GB of memory.
Although my machine is a couple years old, it works well and runs quite fast.
Terminal
iTerm2 is my daily driver.
Based on my experience, it is by far the best terminal for macOS, offering many configuration options.
I typically work with 2 vertically split panes. My font is Fira Mono from Nerd Fonts. My terminal color palette is a slightly modified version of Atom One Dark.
I use zsh
as my shell, and Starship as my shell prompt.
Some other terminal emulators you may want to look into are Alacritty, kitty, and Hyper.
Packages
Homebrew is my package manager.
Homebrew works well for me as I am the only user on my computer.
Editor
Neovim is my editor.
To manage plugins, I use vim-plug.
The plugins I use are:
- lualine.nvim as my statusline
- nvim-lspconfig for language server configuration
- nvim-treesitter for Tree-sitter integration
- onedarkpro.nvim as my editor theme
- telescope.nvim for searching
- telescope-file-browser.nvim for file browsing
The language servers I use are:
- clangd (C++)
- jdtls (Java)
- lua-language-server (Lua)
- pyright (Python)
- solargraph (Ruby)
- tinymist (Typst)
- typescript-language-server (JavaScript / TypeScript)
Utilities
A couple utilities I use are:
For competitive programming, I also have a local tool hp
, which can download problems, run tests, and more. For stress testing, I use qstress.