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 Allow piping commit from git-shalector
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 Vim: if not editing a file, edit working directory
zsh Fuzzy history search with fzf
.gitignore Create backups in vim
Brewfile rbenv-gem-rehash is part of rbenv now Document a few things
agignore Tell ag to ignore JS things
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 Install fzf by default
editrc editrc
gemrc Use --no-document to make purpose clearer
ghci Haskell: Enable OverloadedStrings GHC extension
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. Switch from Vundle to vim-plug
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 Add a space after the tmux session name
vimrc Add `:RunLine` vim function
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.

  • alias irb to pry
  • 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.