The following ERB generates a "Possibly useless use of variable in void context" warning from Syntastic: ```erb <%= comment %> ``` The warning can be eliminated by making it: ```erb <%= comment.to_s %> ``` However, this behavior is the default and is redundant. There are other cases where this warning pops up and in each case I've found it to be of no use.
Third-party completions get added to `/usr/local/share/zsh/site-functions`. Standard `$fpath` contains `/usr/share/zsh/site-functions` (not the missing `local`). By adding this to the `$fpath` git subcommands get completed correctly. Related to #373.
C-a allow use to trigger tmux prefix more easily than C-b, at the cost of overriding the readline beginning of line. This change remaps it to C-s, which has the same effect without that drawback. Remove last-pane bindings. Map prefixes to underlying behavior Quoting Chris Toomey: > I'm wondering if we might want to take a different approach with these > keys. last-pane is already bound to ; by default which is comfortably > on the home row, and if using vim-tmux-navigator also bound to > (unprefixed) C-\.
Xcode >=6.0.1 throws an error when creating a new git-tracked project without an 'exclude' file. Created the exclude file to correspond to the existing gitignore file. More info about this file: http://seejohncode.com/2012/02/29/git-info-exclude
* After removing the matchit.vim plugin from the vimrc.bundles file in this pull request #379. It was brought to my attention that plugins in the macros directory are not automatically loaded due to backwards compatibility issues. * Add entry to vimrc to source the matchit.vim plugin from the macros directory, if the user does not have it installed already. This is how Tim Pope adds the matchit.vim plugin to vimrc in his vim-sensible plugin. https://github.com/tpope/vim-sensible/blob/master/plugin/sensible.vim#L88
Bundler 1.8+ added support for git-style subcommands. Any scripts starting with `bundler-` in your path are executable as bundler subcommands. This adds `search` as a subcommand that uses `ag` to search for a string among all gems in your bundle (default) or optionally a specific gem. I've found this useful for finding the source of puzzling deprecations, finding what gem provides a method, and other various things.
* This plugin is no longer maintained and is included in vim by default. * Per the docs at https://github.com/vim-scripts/matchit.zip Since vim 6.0, matchit.vim has been included in the standard vim distribution, under the macros/ directory; the version here may be more recent. * The version included in the vim macros directory is the same version being added in the vimrc.bundles file from github version 1.13.2
Autosquash makes it quicker and easier to squash or fixup commits during an interactive rebase. It can be enabled for each rebase using `git rebase -i --autosquash`, but it's easier to turn it on by default. Say I have this history: $ git log --oneline aaa1111 A first commit bbb2222 A second commit ccc3333 A third commit I make another change that I already know should be squashed into "A second commit". I can do this: $ git add . $ git commit --squash bbb2222 [my-branch ddd4444] squash! A second commit Then when I rebase: $ git rebase -i origin/my-branch The interactive rebase list will be set up ready to squash: pick aaa1111 A first commit pick bbb2222 A second commit squash ddd4444 squash! A second commit pick ccc3333 A third commit Since it's unlikely that anyone will be writing a commit message that begins `squash!` or `fixup!` when they don't want this behaviour, and the user still has a chance to review what's going to happen with the rebase, it's safe to have it always turned on.
[vim-plug](https://github.com/junegunn/vim-plug) has a number of advantages over Vundle: * Installs and updates plugins very quickly in parallel * Can lock plugins at versions/tags * Can rollbacks updates (useful if a plugin breaks) and take/reload snapshots of current state * Optionally lazily-load plugins when their relevant command is invoked * Execute post-update hooks for plugins with compiled extensions, etc. vim-plug uses a DSL very close to Vundle (simplest form is `Plug` vs. `Plugin`), and here it is set to continue to use the same plugin location that Vundle was using before. After updating, users will need to 1. Rename `Plugin` lines in `.vimrc.bundles.local` to use `Plug` 2. Run `:PlugInstall` (the post-up hook does this)
Any executable script on you PATH that is named `git-some-name` will be available as a git subcommand, which means you could do `git some-name` to run the script. Git adds them to `git help -a` under the title "git commands available from elsewhere on your $PATH", which will then power the auto completion, so that will also work for any command you add. http://blog.zamith.pt/blog/2014/11/05/supercharging-your-git/ Examples of other projects that structure their dotfiles like this: https://github.com/robbyrussell/oh-my-zsh https://github.com/tj/git-extras https://github.com/holman/dotfiles
* Every time I pull updates from this repo into my own dotfiles, I have to reconfigure my preferred theme (solarized) * Seems like there is not a majority or plurality of thoughbotters using a single colorscheme * Easiest to just not specify a colorscheme * See https://forum.upcase.com/t/why-is-the-default-vim-theme-on-dotfiles-is-github/4232
I am constantly forgetting that I can't use `ctrl-p` to open `.travis.yml` or any other file with a leading `.`. This change comes about after some discussion in general on how to handle this. Passing `--hidden` to the `ag` command allows it to find files with a leading `.`. Unfortunately, this also includes the content of your `.git` directory. To overcome this, we add `/.git/` to `agignore`.
It is not needed - see http://vimdoc.sourceforge.net/htmldoc/options.html#'nocompatible'; (or see :help 'cp')
* Lists all remote branches * Sorts by last commit date, descending * Shows how long the branch has been around * Shows last commit author ``` $ git branches 6 days ago Dan Croak origin/HEAD 6 days ago Dan Croak origin/master 5 months ago Dan Croak origin/dc-rbenv-zsh 6 months ago Sean Doyle origin/sd-nvm-path 6 months ago Tute Costa origin/vim-multiple-cursors 7 months ago Sean Doyle origin/sd-vundle 8 months ago Sean Griffin origin/sg-disable-spring 9 months ago Mike Burns origin/mb-experimental-tag ```
When within a git repository, doing a tab-autocomplete on a command results with the command becoming unreadable. The command still works but this is pretty annoying visually. Basically I 1. Navigate to a directory with a git repository in it. The prompt indicates the current branch properly 2. Next, type `git -` and hit tab The prompt now shows only part of branch's name with the first suggestion appended. After googling a bit I stumbled upon several pages describing a similar problem (most useful to me was http://stackoverflow.com/questions/23740862/issues-with-zsh-prompt). The culprit seems to be the git_prompt_info function escaping the `$current_branch` variable as if it is a color. As a result zsh is confused where the cursor is. After "unescaping" the variable everything seems to work fine. Using zsh 5.0.7 (x86_64-apple-darwin13.4.0).
* Silver searcher or ag was filtering out any directory that had a .DS_STORE file. Any directory that has a .DS_STORE file in it is being ignored by ag and therefor does not show up in the ctrlp fuzzy finder either. * Removing the * from before .DS_STORE in the gitignore file still prevents .DS_STORE files from being checked into source control and stops ag from filtering out the directory. I am not sure if this is a bug with silver_searcher or what
A few aliases contain references to environment variables, but were defined using double quotes. This caused zsh to interpolate the value of those variables when the alias was defined instead of when it was executed. In particular, any change to `PATH` (or `EDITOR` or `VISUAL`) in `.zshrc.local`, which is sourced after `.aliases`, would not be reflected in these aliases. This commit defines these aliases using single quotes so that the environment variables are evaluated when the alias is executed.