Set zsh as the login shell.
chsh -s /bin/zsh
Install rcm.
brew tap thoughtbot/formulae
brew install rcm
Clone:
git clone git://github.com/reshleman/dotfiles.git $HOME/Code/reshleman/dotfiles
Install:
env RCRC=$HOME/Code/reshleman/dotfiles/rcrc rcup
This command will create symlinks for reshleman config
files in the home directory. The RCRC environment variable tells rcup to use
the configuration options from the rcrc file:
- Exclude the
README.mdandLICENSEfiles, which do not need to be symlinked. - Give precedence to overrides in
private-dotfilesover those in this repository.
After the initial installation, you can run rcup without the one-time variable
RCRC being set (rcup will symlink the repo's rcrc to ~/.rcrc for
future runs of rcup).
rcup can safely be run multiple times to update.
rcup should be run after pulling a new version of the repository to symlink
any new files in the repository.
Additional zsh configuration can go under the ~/dotfiles-local/zsh/configs
directory. This has two special subdirectories: pre for files that must be
loaded first, and post for files that must be loaded last.
vim configuration:
- Set
<leader>to a single space. - Use vim-plug to manage plugins.
- fzf for fuzzy file/buffer/tag finding.
- Rails.vim for enhanced navigation of
Rails file structure via
gfand:A(alternate),:Rextractpartials,:Rinvertmigrations, etc. - Run many kinds of tests from vim
- Syntax highlighting for Markdown, HTML, JavaScript, Ruby, Go, Elixir, more.
- Use Ag instead of Grep when available.
- Map
<leader>ctto re-index Exuberant Ctags. - Use vim-mkdir for automatically creating non-existing directories before writing the buffer.
- Ag plugin
- Solarized colorscheme
- Customizations for GUI Vim
- Switch between the last two files with space-space.
git configuration:
- My name and email
- Adds a
create-branchalias to create feature branches. - Adds a
delete-branchalias to delete feature branches. - Adds a
merge-branchalias to merge feature branches into master. - Adds an
upalias to fetch and rebaseorigin/masterinto the feature branch. Usegit up -ifor interactive rebases. - Adds
post-{checkout,commit,merge}hooks to re-index your ctags. - Adds
trust-binalias to append a project'sbin/directory to$PATH.
C-sprefix key- More intuitive pane splitting with
prefix-minusandprefix-backslash - Vim-like keybindings for pane switching, with awareness of vim splits
- Resize panes with {
Shift,Ctrl}-{Left,Right,Up,Down} - Use
vim-tmux-runner <prefix>C-band<prefix>Kto break and kill sessions without exiting tmux- Integrate w/ system clipboard in copy mode
Much of this tmux configuration is based on the Upcase tmux course and Chris Toomey's dotfiles.
zsh configuration and aliases:
- Prompt customization
bforbundle.gwith no arguments isgit statusand with arguments acts likegit.migrateforrake db:migrate && rake db:rollback && rake db:migrate.mcdto make a directory and change into it.replace foo bar **/*.rbto find and replace within a given list of files.tatto attach to tmux session named the same as the current directory.vfor$VISUAL.
Lots of this configuration is based on thoughtbot/dotfiles.