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.md
andLICENSE
files, which do not need to be symlinked. - Give precedence to overrides in
private-dotfiles
over 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
gf
and:A
(alternate),:Rextract
partials,:Rinvert
migrations, 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>ct
to 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-branch
alias to create feature branches. - Adds a
delete-branch
alias to delete feature branches. - Adds a
merge-branch
alias to merge feature branches into master. - Adds an
up
alias to fetch and rebaseorigin/master
into the feature branch. Usegit up -i
for interactive rebases. - Adds
post-{checkout,commit,merge}
hooks to re-index your ctags. - Adds
trust-bin
alias to append a project'sbin/
directory to$PATH
.
C-s
prefix key- More intuitive pane splitting with
prefix-minus
andprefix-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-b
and<prefix>K
to 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
b
forbundle
.g
with no arguments isgit status
and with arguments acts likegit
.migrate
forrake db:migrate && rake db:rollback && rake db:migrate
.mcd
to make a directory and change into it.replace foo bar **/*.rb
to find and replace within a given list of files.tat
to attach to tmux session named the same as the current directory.v
for$VISUAL
.
Lots of this configuration is based on thoughtbot/dotfiles.