See my dotfiles for configuration tips.
linux / terminal
tools
- tmux (split terminal, keep alive remote ssh session)
- fzf (fuzzy finder for everything)
- ugrep (much faster grep)
- fd (better find)
- bat (better cat)
- terminal editors (know how to change a word or two in a file):
- vim or neovim (harder, but better long term):
- nano (easier)
python
tools
- pyenv vs pipenv
- black (formatter)
- isort (formatter) and isort black compatbility
- pyflyby: for keeping imports clean
- ruff (linter)
git
- writing good commits
- interactive tutorial
- https://nuclearsquid.com/writings/git-add/
- the git book: especially chapters 1-3, 5.1, 5.2, 7.2
- git rebase, i.e. how to rewrite git history
- tutorial for git over email
- alternative to the forking model
Notes:
- The functionality of
checkout
has been split intoswitch
andrestore
in more recent versions, it’s better to use those. - It’s important to craft good commits, which involves writing good commit messages,
add
-ing only what is needed in a commit (which might include only partially adding changes from a file), and cleaning up after yourself before pushing (rebase
). Force pushing to a feature branch to clean up history before merging into master is not a bad practice.
tools
- fugitive.vim (plugin for vim)
- lazygit (TUI)