Similarly to a craftsman it’s very important to have a good set of tools that simplifies your work.
I use a few command line tools quite often, so I configured them to better fit my needs. The config for each tool is stored as own hidden file in your home directory (aka dotfile). That’s not very good to manage, so I’ve created a folder called
~/.dotfiles from which I create symbolic links to the actual dotfiles location.
As I work on multiple machines (my private ones and the one at my job) it’s necessary to keep those files in sync. For that reason I created a git repository in my
~/.dotfiles folder with a remote to a public GitHub repository. This gives me the opportunity to change something at one machine, move the change to GitHub and then pull it from all the other machines.
To get my dotfiles on a fresh installed Linux or OS X system I can simply call a small install script that has only a few dependencies (curl, bash, git):
curl http://goo.gl/bAsw7j | bash
This script clones the repository into
~/.dotfiles and creates symbolic links to all dotfiles. It also clones the latest version of oh-my-zsh (a configuration framework for the alternative shell zsh) into my
~/.dotfiles folder. After everything it launches the editor vim to install all the plugins configured in it’s dotfile.
Here is an example for how important it is to have a good configuration. The first Screenshot is a completly unconfigured default vim installation on OS X. The second one is the same vim installation using my personal configuration that enables some nice features (e.g. syntax highlighting, displaying hidden characters, line numbers, file explorer, …):
Feel free to use or fork my dotfiles if you are now in the mood to create your own:
But please double check them before use, because it’s possible there is somewhere something hardcoded for my demands (e.g. USER=meyer or OS X style paths as I only have one linux machine where I could test them).