9  Other

9.1 BibTex Tidy

I use BibTex Tidy by Peter West to make my reference (.bib) files look nice (see before and after shots, below).

This tool tidies bibtex files by fixing inconsistent whitespace, removing duplicates, removing unwanted fields, and sorting entries.

Screenshot of un-tidied bibliography entries in BibTex Tidy web interface.

Screenshot of un-tidied bibliography entries in BibTex Tidy web interface.

Screenshot of same bibliography entries after tidying in BibTex Tidy web interface.

Screenshot of same bibliography entries after tidying in BibTex Tidy web interface.

In addition to the in-browser interface (linked to and depicted above), it’s also available at the command line. You can find details in the bibtex-tidy GitHub repo. If you use the browser interface, your configuration will be generated in the sidebar such that you can get the same results with the CLI. For example, mine would be:

Terminal
bibtex-tidy --curly --numeric --space=2 --tab --align=13 --duplicates=key --no-escape --sort-fields=title,shorttitle,author,year,month,day,journal,booktitle,location,on,publisher,address,series,volume,number,pages,doi,isbn,issn,url,urldate,copyright,category,note,metadata,date --trailing-commas --no-remove-dupe-fields YOUR_FILE.bib

9.2 yadm

I love yadm (Yet Another Dotfiles Manager) so much, I wrote an entire blog post about it (Madam, I’m yadm). As you might have garnered from the name, yadm is a dotfiles1 manager. As it’s the tool I use for dotfile management, it seems remiss not to include it here.

Why yadm? I’ll just lift from the yadm overview to answer that one:

If you know how to use Git, you already know how to use yadm. yadm helps you maintain a single repository of dotfiles, while keeping them where they belong—in $HOME.

That’s me: I know how to use Git, and I have a bunch of dotfiles in $HOME (or in various other places they reside that can be defined relative to there), and I want to manage them with version control without moving them.

Once you’ve installed yadm and initialized a repo for it with yadm init (yes, I’m glossing over details here), you just add a file with yadm add by giving it the full file path. This is super straightforward for a file that lives directly under $HOME:

Terminal
yadm add ~/.zshrc

It works the same for files in other folders, as long as you give the full path starting from your root directory. For example, I have a lot of files that nested somewhere under my .config folder.

Terminal
yadm add ~/.config/rstudio/rstudio-prefs.json

I’m also sufficiently lazy that I sometimes leave settings in their somewhat obscure default locations, which is just fine with yadm:

Terminal
yadm add ~/Library/'Application Support'/'Code - Insiders'/User/settings.json

The rest of the steps are just a matter of using Git commands with yadm in place of git (e.g. yadm commit -m "Message." to commit your changes). You can find more in the yadm docs’ common commands (which do include a few non-Git ones that are special to yadm).

There’s more to yadm than I’ve described here (including a bunch of advanced features), so it’s definitely worth checking out their documentation, especially the FAQs.


  1. Dotfiles are plain-text configuration files you can use to define your settings for various programs/environments. If you’re new to dotfiles, the dotfiles 101 bit of my yadm post gives you some basic info and resources where you can learn more.↩︎