Skip to content
paul's shell, git, etc config files. also homebrew, migration setup. good stuff.
VimL Shell Python
Find file
Latest commit 8501da2 Apr 23, 2016 @paulirish Merge pull request #68 from Anenth/patch-1
Fix: -W invalid command
Failed to load latest commit information.
.ssh ssh config. session holding for superfast git work. Mar 16, 2016
.vim minor vim config changes. Mar 16, 2016
bin Update git-chromecheckout Apr 3, 2016
cron cron adjustments Mar 16, 2016
docs bash tricks. print all colors. Mar 16, 2016
fish alias: master = git checkout master Mar 26, 2016
prefs iterm2 prefs. Mar 16, 2016
.aliases Fix: -W invalid command Apr 24, 2016
.bash_profile minor: removing old stuff. Apr 5, 2016
.bash_prompt fuck is an enjoyable experience. Mar 16, 2016
.bashrc homebrew and disk management stuff. assorted. Mar 16, 2016
.dircolors dircolors update to latest Dec 6, 2015
.eslintrc eslint. max-len 110. other tweaks Mar 16, 2016
.exports hardening for ubuntu May 4, 2015
.functions really enjoying using vscode so far. Mar 16, 2016
.gemrc gem installs shouldnt waste time on documentation. Dec 6, 2015
.gitattributes no more whitespace fixing automatically. Jan 25, 2013
.gitconfig alias: master = git checkout master Mar 26, 2016
.gitignore bash tricks. print all colors. Mar 17, 2016
.gitmodules submodule for gitfriendly. May 31, 2015
.inputrc readline: ctrl left, ctrl right for moving on the readline by word. s… May 17, 2015
.osx osx: activity monitor columns per tab. Mar 16, 2016
.vimrc update vim config to match present day @gf3 config Apr 8, 2015
.zshrc homebrew and disk management stuff. assorted. Mar 17, 2016 i'm using fish shell mostly now, some bash tho. Mar 16, 2016 minor: removing old stuff. Apr 6, 2016 minor: removing old stuff. Apr 6, 2016
crontab cron adjustments Mar 17, 2016 Merge pull request #64 from AliMD/patch-3 Mar 25, 2016 symlink-setup: fish Dec 6, 2015

Paul's dotfiles

  • I maintain this repo as my dotfiles, but I'm keenly aware people are using it for theirs.
  • You're quite welcome to make suggestions, however I may decline if it's not of personal value to me.
  • If you're starting off consider forking mathias or alrra. paulmillr and gf3 also have great setups


installing & using

  • fork this to your own acct
  • clone that repo
  • read and run parts of
  • read and run
    • git config needs attention, read the notes.
  • use it. yay!


  • commit/push changes you want.
  • you can also hypothetically cherry-pick commits from me and mathias and our fork ecosystem.


This repo contains config for bash, zsh, and fish. As of March 2016, I'm using fish shell mostly, but fall back to bash once in a while. The bash and zsh stuff are both well maintained; zsh, less so.

my favorite parts.

.aliases and .functions

So many goodies.

The "readline config" (.inputrc)

Basically it makes typing into the prompt amazing.

  • tab like crazy for autocompletion that doesnt suck. tab all the things. srsly.
  • no more that says "Display all 1745 possibilities? (y or n)" YAY
  • type cat <uparrow> to see your previous cats and use them.
  • case insensitivity.
  • tab all the livelong day.

Moving around in folders (z, ..., cdf)

z helps you jump around to whatever folder. It uses actual real magic to determine where you should jump to. Seperately there's some ... aliases to shorten cd ../.. and .., .... etc. Then, if you have a folder open in Finder, cdf will bring you to it.

z dotfiles
z blog
....      # drop back equivalent to cd ../../..
z public
cdf       # cd to whatever's up in Finder

z learns only once its installed so you'll have to cd around for a bit to get it taught. Lastly, I use open . to open Finder from this path. (That's just available normally.)

overview of files

Automatic config

  • .vimrc, .vim - vim config, obv.
  • .inputrc - behavior of the actual prompt line

shell environment

  • .aliases
  • .bash_profile
  • .bash_prompt
  • .bashrc
  • .exports
  • .functions
  • .extra - not included, explained below

manual run

  • - random apps i need installed
  • - sets up symlinks for all dotfiles and vim config.
  • .osx - run on a fresh osx setup
  • & - homebrew initialization

git, brah

  • .git
  • .gitattributes
  • .gitconfig
  • .gitignore

.extra for your private configuration

There will be items that don't belong to be committed to a git repo, because either 1) it shoudn't be the same across your machines or 2) it shouldn't be in a git repo. Kick it off like this:

touch ~/.extra && $EDITOR $_

I have some EXPORTS, my PATH construction, and a few aliases for ssh'ing into my servers in there.

I don't know how other folks manage their $PATH, but this is how I do mine:

# The top-most paths override here.
# ...

export PATH

Sensible OS X defaults

Mathias's repo is the canonical for this, but you should probably run his or mine after reviewing it.



One-off binaries that aren't via an npm global or homebrew. git open, wifi-password, coloredlogcat, git-overwritten, and subl for Sublime Text.

Syntax highlighting for these files

If you edit this stuff, install Dotfiles Syntax Highlighting via Package Control

Something went wrong with that request. Please try again.