As I suspect many old-school programmers do, I have a pretty idiosyncratic way of working which is supported by a menagerie of development tools fit to my rhythms of thought and action. Those that aren’t so niche are listed below, with the ones I use all the time highlighted. If you use any of these, drop me a line to let me know!
- git hitlist
- Pick up where you left off by opening vim to all uncommitted changes or the changes of a specific (usually WIP) commit
- g
- vig
- grep your way through life with vim at your side
- jqi
- Interactively explore a JSON document (or document set) using
jq
in a REPL (read-eval-print-loop) with rich line editing, command history, and auto-paging of results - xxx
- List, edit, and count XXX/TODO/FIXME remarks in a git repo, branch, or arbitrary collection of files
- recs
- Slice and dice streams of structured data quickly and efficiently the Unix way
- git prune-branches
- Prune local branches that are merged into master and no longer exist on the remote
- git reword
- Reword an existing commit message in one step, without thinking about
git rebase
- git eslint
- Run eslint only on the lines touched by the current branch. Then quickly edit any issues found in vim to correct them
- git on-github
- Jump from the command-line to the GitHub page for a given commit
or file (without installing
hub
) - git authorship
- Summarize authorship of a repository by the number of surviving
lines that exist in HEAD (or any other revision), optionally limited to a
subset of files. Much of the time
git shortlog -ns
, which counts all commits and not surviving lines, is more appropriate. Past contributors matter after all! - rstudio-console
- Run code in your RStudio session from your terminal or favorite editor.