Skip to content


Subversion checkout URL

You can clone with
Download ZIP
My dotfiles (.vimrc, .zshrc, etc.)
VimL Shell Ruby
Branch: master
Failed to load latest commit information.
bin Make the output of icopy just perfect
git-template Comment out gitmessage
helpful-tips Ensure ZSH tips are on their own lines
irbrc.d Remove unused irb configuration
system Enable backspace as Back button in Safari
terminal-themes Update terminal theme
vim Use endwise.vim from GitHub
zsh Detach other tmux sessions when attaching
.gitignore Boot vim 100msec faster by not shelling out
Brewfile Install Qt5 for capybara-webkit Use IRB over Pry
agignore Ignore giant fonts files
basic-cabal-file Easily generate x.cabal file
ctags Extend custom Ruby ctags (via @georgebrock)
curlrc Did you know there's a .curlrc?!
default-gems Use IRB over Pry
editrc editrc
gemrc Use --no-document to make purpose clearer
ghci Import more helpful modules in ghci
gitconfig Extract git merge-to-master to a script
gitignore Don't gitignore .ruby-version
haskeline haskeline settings
inputrc tmux, don't ever convert <Enter> to ^M again. Unlink qt before linking qt5
irbrc Double quotes Use rbenv-default-gems
nethackrc bye bingo
pryrc Use pry!
psqlrc shut up, psql
pythonstartup Add python settings
rspec Always run specs in random order
tmux.conf Don't bind C-\ in tmux
vimrc Vim: Use `syntax enable` over `syntax on`
zshenv Auto-connect to tmux sessions
zshrc Yeah sure


Gabriel Berke-Williams' dotfiles for zsh, ruby, git, and more.

Questions? Comments? Open an issue or tweet @gabebw.


  • ZSH. To change your default shell to ZSH: chsh -s $(which zsh) $USER
  • Homebrew.


$ ./

It won't touch your existing dotfiles, but will symlink ones that don't exist. For example, if you have a ~/.zshrc but no ~/.zshenv, then the script will add a symlink from ~/.zshenv to the zshenv in this repo.


  • Look in /zshenv, /zshrc, /zsh/colors.zsh, /zsh/completion.zsh, /zsh/key_bindings.zsh, /zsh/navigation.zsh, /zsh/options.zsh, /zsh/path.zsh, /zsh/prompt.zsh
  • Turn off all beeping
  • Turn off "helpful" command autocorrecting
  • Prevent zsh: no matches found: ... error
  • Since (among others) $HOME/code is in my cdpath (see navigation.zsh), and I have $HOME/code/hello, I can type hello from anywhere to go to there.
  • The prompt shows the current directory, the current git branch, the status of the git branch (changed, staged, clean, etc) and the current Ruby version
  • The prompt is fairly well documented, and is self-contained: you can copy it into your dotfiles with no changes to test it out. It's in zsh/prompt.zsh.
  • Enables pretty colors
  • Enables completions
  • Enables Vi-style editing on the command line, with Ctrl-r to search backwards
  • If you've typed abc then press the Up arrow, it searches for commands starting with abc; same for the Down arrow.
  • Completion for the following commands (in /zsh/completion-scripts): brew, rake, rspec, tmux, bundle
  • Every time a directory changes, save it to a file and go back to the current directory when the shell is opened again. Files are named based on the current tmux session.


Check out /zsh/ruby.zsh.

  • be is bundle exec
  • b with no arguments runs a faster version of bundle install and then installs binstubs.
  • b with arguments (like b install) acts just like bundle
  • binstubs installs bundler binstubs to ./bin/stubs


Check out /zsh/rails.zsh.

  • alias h to heroku
  • alias summer to spring stop
  • rrg something greps the routes for something
  • f starts foreman on the port specified in .foreman, or if that's in use, starts foreman on a guaranteed-unused port.
  • db-reset drops and resets the database


  • For Vim-plugin-specific settings, check out /vim/rcplugins/.
Something went wrong with that request. Please try again.