146 lines
4.6 KiB
Markdown
146 lines
4.6 KiB
Markdown
thoughtbot dotfiles
|
|
===================
|
|
|
|
Requirements
|
|
------------
|
|
|
|
Set zsh as your login shell:
|
|
|
|
chsh -s $(which zsh)
|
|
|
|
Install
|
|
-------
|
|
|
|
Clone onto your laptop:
|
|
|
|
git clone git://github.com/thoughtbot/dotfiles.git
|
|
|
|
(Or, [fork and keep your fork
|
|
updated](http://robots.thoughtbot.com/keeping-a-github-fork-updated)).
|
|
|
|
Install [rcm](https://github.com/thoughtbot/rcm):
|
|
|
|
brew bundle dotfiles/Brewfile
|
|
|
|
Install:
|
|
|
|
rcup -d dotfiles -x README.md -x LICENSE -x Brewfile
|
|
|
|
This will create symlinks for config files in your home directory. The `-x`
|
|
options, which exclude the `README.md`, `LICENSE`, and `Brewfile` files, are
|
|
needed during installation but can be skipped once the `.rcrc` configuration
|
|
file is symlinked in.
|
|
|
|
You can safely run `rcup` multiple times to update:
|
|
|
|
rcup
|
|
|
|
Make your own customizations
|
|
----------------------------
|
|
|
|
Put your customizations in dotfiles appended with `.local`:
|
|
|
|
* `~/.aliases.local`
|
|
* `~/.gitconfig.local`
|
|
* `~/.gvimrc.local`
|
|
* `~/.tmux.conf.local`
|
|
* `~/.vimrc.local`
|
|
* `~/.vimrc.bundles.local`
|
|
* `~/.zshrc.local`
|
|
|
|
For example, your `~/.aliases.local` might look like this:
|
|
|
|
# Productivity
|
|
alias todo='$EDITOR ~/.todo'
|
|
|
|
Your `~/.gitconfig.local` might look like this:
|
|
|
|
[alias]
|
|
l = log --pretty=colored
|
|
[pretty]
|
|
colored = format:%Cred%h%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset
|
|
[user]
|
|
name = Dan Croak
|
|
email = dan@thoughtbot.com
|
|
|
|
Your `~/.zshrc.local` might look like this:
|
|
|
|
# recommended by brew doctor
|
|
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
|
|
|
|
Your `~/.vimrc.bundles.local` might look like this:
|
|
|
|
Bundle 'Lokaltog/vim-powerline'
|
|
Bundle 'stephenmckinney/vim-solarized-powerline'
|
|
|
|
What's in it?
|
|
-------------
|
|
|
|
[vim](http://www.vim.org/) configuration:
|
|
|
|
* [Ctrl-P](https://github.com/kien/ctrlp.vim) for fuzzy file/buffer/tag finding.
|
|
* [Rails.vim](https://github.com/tpope/vim-rails) for enhanced navigation of
|
|
Rails file structure via `gf` and `:A` (alternate), `:Rextract` partials,
|
|
`:Rinvert` migrations, etc.
|
|
* Run [RSpec](https://www.relishapp.com/rspec) specs from vim.
|
|
* Set `<leader>` to a single space.
|
|
* Switch between the last two files with space-space.
|
|
* Syntax highlighting for CoffeeScript, Textile, Cucumber, Haml, Markdown, and
|
|
HTML.
|
|
* Use [Ag](https://github.com/ggreer/the_silver_searcher) instead of Grep when
|
|
available.
|
|
* Use [Exuberant Ctags](http://ctags.sourceforge.net/) for tab completion.
|
|
* Use [GitHub color scheme](https://github.com/croaky/vim-colors-github).
|
|
* Use [Vundle](https://github.com/gmarik/vundle) to manage plugins.
|
|
|
|
[tmux](http://robots.thoughtbot.com/a-tmux-crash-course)
|
|
configuration:
|
|
|
|
* Improve color resolution.
|
|
* Remove administrative debris (session name, hostname, time) in status bar.
|
|
* Set prefix to `Ctrl+a` (like GNU screen).
|
|
* Soften status bar color from harsh green to light gray.
|
|
|
|
[git](http://git-scm.com/) configuration:
|
|
|
|
* 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 rebase `origin/master` into the feature
|
|
branch. Use `git up -i` for interactive rebases.
|
|
|
|
[Ruby](https://www.ruby-lang.org/en/) configuration:
|
|
|
|
* Add trusted binstubs to the `PATH`.
|
|
* Load rbenv into the shell, adding shims onto our `PATH`.
|
|
|
|
Shell aliases and scripts:
|
|
|
|
* `b` for `bundle`.
|
|
* `g` with no arguments is `git status` and with arguments acts like `git`.
|
|
* `git-churn` to show churn for the files changed in the branch.
|
|
* `m` for `rake db:migrate && rake db:rollback && rake db:migrate && rake db:test:prepare`.
|
|
* `mcd` to make a directory and change into it.
|
|
* `rake` is `zeus rake` if using [Zeus](https://github.com/burke/zeus) on the
|
|
project in current directory.
|
|
* `replace foo bar **/*.rb` to find and replace within a given list of files.
|
|
* `rk` for `rake`.
|
|
* `rspec` is `zeus rspec` if using Zeus on the project in current directory.
|
|
* `tat` to attach to tmux session named the same as the current directory.
|
|
* `v` for `$VISUAL`.
|
|
|
|
Credits
|
|
-------
|
|
|
|
Thank you, [contributors](https://github.com/thoughtbot/dotfiles/contributors)!
|
|
Also, thank you to Corey Haines, Gary Bernhardt, and others for sharing your
|
|
dotfiles and other shell scripts from which we derived inspiration for items
|
|
in this project.
|
|
|
|

|
|
|
|
Dotfiles is maintained by [thoughtbot, inc](http://thoughtbot.com/community)
|
|
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|
|
|
|
Dotfiles is © 2009-2014 thoughtbot, inc. It is free software and may be
|
|
redistributed under the terms specified in the [LICENSE](LICENSE) file.
|