For an effective terminal setup, I recommend a terminal tiler. I use the tiling window manager that comes with Pop!_OS.
Run the interactive install script:
curl -fsSL https://raw.githubusercontent.com/22or/dotfiles/refs/heads/master/install.sh | bashTwo-line prompt. Falls back to plain user@host:path$ in terminals without color support.
Interactive search over file contents in the current directory tree, powered by grep + fzf. Ignores .git, node_modules, dist, build, etc. and binary file types.
bashmarks — directory bookmarks
Taken from the bashmarks README:
s <bookmark_name> - Saves the current directory as "bookmark_name"
g <bookmark_name> - Goes (cd) to the directory associated with "bookmark_name"
p <bookmark_name> - Prints the directory associated with "bookmark_name"
d <bookmark_name> - Deletes the bookmark
l - Lists all available bookmarks
Compiles and runs a .cpp file with -std=c++17 -O2, then removes the temporary binary on exit, interrupt, or error.
run file.cpp [extra g++ flags]Plugins managed with vim-plug
vim-lsp + vim-lsp-settings — LSP
- Provides error checking, syntax highlighting, hover tooltips, etc.
- I use Bear to generate a compilation database
vista.vim — symbol navigation
- Depends on vim-lsp
- LSP and file path suggestions
<Leader>fopens a symbol selector window
asyncomplete.vim + asyncomplete-lsp.vim + asyncomplete-file.vim — autocomplete
- Depends on vim-lsp
<Tab>and<S-Tab>to cycle through options
fzf.vim — file navigation
<C-p>opens a file selector window
- context.vim — make context lines (functions, if-statements, for-loops, etc.) stick to the top
- vim-signature — show signs for Vim marks
- vim-operator-highlight — robust syntax highlighting for operators
On write, automatically logs the file in GTK's RecentManager so files edited in Vim appear in recent files across GTK apps (like the GNOME file chooser).
Checks for GTK presence and headlessness so it's safe to use over SSH.