diff --git a/.gitmodules b/.gitmodules index ef6c580..11637d0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,10 +14,6 @@ path = vim/bundle/vim-scripts-AnsiEsc url = https://github.com/vim-scripts/AnsiEsc.vim.git ignore=dirty -[submodule "vim/bundle/garbas-vim-showmarks"] - path = vim/bundle/garbas-vim-showmarks - url = https://github.com/garbas/vim-showmarks - ignore=dirty [submodule "vim/bundle/skwp-vim-ruby-conque"] path = vim/bundle/skwp-vim-ruby-conque url = https://github.com/skwp/vim-ruby-conque @@ -74,10 +70,6 @@ path = vim/bundle/tpope-vim-repeat url = https://github.com/tpope/vim-repeat.git ignore=dirty -[submodule "vim/bundle/vim-scripts-taglist"] - path = vim/bundle/vim-scripts-taglist - url = https://github.com/vim-scripts/taglist.vim.git - ignore=dirty [submodule "vim/bundle/tpope-vim-surround"] path = vim/bundle/tpope-vim-surround url = https://github.com/tpope/vim-surround.git @@ -118,10 +110,6 @@ path = vim/bundle/skwp-vim-colors-solarized url = https://github.com/skwp/vim-colors-solarized ignore=dirty -[submodule "vim/bundle/rson-vim-conque"] - path = vim/bundle/rson-vim-conque - url = https://github.com/rson/vim-conque.git - ignore=dirty [submodule "vim/bundle/tpope-vim-pathogen"] path = vim/bundle/tpope-vim-pathogen url = https://github.com/tpope/vim-pathogen @@ -134,14 +122,6 @@ path = vim/bundle/tpope-vim-fugitive url = https://github.com/tpope/vim-fugitive ignore=dirty -[submodule "vim/bundle/mikefarmer-snipmate"] - path = vim/bundle/mikefarmer-snipmate - url = https://github.com/mikefarmer/snipmate.vim.git - ignore=dirty -[submodule "vim/snippets"] - path = vim/snippets - url = https://github.com/scrooloose/snipmate-snippets.git - ignore=dirty [submodule "vim/bundle/skwp-vim-git-grep-rails-partial"] path = vim/bundle/skwp-vim-git-grep-rails-partial url = https://github.com/skwp/vim-git-grep-rails-partial @@ -234,10 +214,6 @@ path = vim/bundle/bootleq-vim-textobj-rubysymbol url = https://github.com/bootleq/vim-textobj-rubysymbol ignore=dirty -[submodule "vim/bundle/skwp-vim-rspec"] - path = vim/bundle/skwp-vim-rspec - url = https://github.com/skwp/vim-rspec - ignore=dirty [submodule "vim/bundle/nathanaelkane-vim-indent-guides"] path = vim/bundle/nathanaelkane-vim-indent-guides url = https://github.com/nathanaelkane/vim-indent-guides @@ -250,10 +226,6 @@ path = vim/bundle/tpope-vim-haml url = https://github.com/tpope/vim-haml ignore=dirty -[submodule "vim/bundle/kien-tabman"] - path = vim/bundle/kien-tabman - url = https://github.com/kien/tabman.vim - ignore=dirty [submodule "vim/bundle/claco-jasmine"] path = vim/bundle/claco-jasmine url = https://github.com/claco/jasmine.vim @@ -285,3 +257,33 @@ [submodule "vim/bundle/joestelmach-javaScriptLint"] path = vim/bundle/joestelmach-javaScriptLint url = https://github.com/joestelmach/javaScriptLint.vim +[submodule "vim/bundle/VimEz-ShowMarks"] + path = vim/bundle/VimEz-ShowMarks + url = https://github.com/VimEz/ShowMarks.git +[submodule "vim/bundle/skwp-vim-powerline"] + path = vim/bundle/skwp-vim-powerline + url = https://github.com/skwp/vim-powerline +[submodule "vim/bundle/kana-vim-arpeggio"] + path = vim/bundle/kana-vim-arpeggio + url = https://github.com/kana/vim-arpeggio +[submodule "vim/bundle/chrisbra-color_highlight"] + path = vim/bundle/chrisbra-color_highlight + url = https://github.com/chrisbra/color_highlight.git +[submodule "vim/bundle/vim-scripts-camelcasemotion"] + path = vim/bundle/vim-scripts-camelcasemotion + url = https://github.com/vim-scripts/camelcasemotion.git +[submodule "vim/bundle/garbas-vim-snipmate"] + path = vim/bundle/garbas-vim-snipmate + url = https://github.com/garbas/vim-snipmate.git +[submodule "vim/bundle/MarcWeber-vim-addon-mw-utils"] + path = vim/bundle/MarcWeber-vim-addon-mw-utils + url = https://github.com/MarcWeber/vim-addon-mw-utils.git +[submodule "vim/bundle/tomtom-tlib_vim"] + path = vim/bundle/tomtom-tlib_vim + url = https://github.com/tomtom/tlib_vim.git +[submodule "vim/bundle/honza-snipmate-snippets"] + path = vim/bundle/honza-snipmate-snippets + url = https://github.com/honza/snipmate-snippets.git +[submodule "vim/bundle/skwp-vim-conque"] + path = vim/bundle/skwp-vim-conque + url = https://github.com/skwp/vim-conque diff --git a/README.md b/README.md index cd9a907..93d776a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ _____| / ___ ( (_| | | (_______\_____|\____|_| - # Yet Another Dotfile Repo v0.8 + # Yet Another Dotfile Repo v0.9 # Alpha Release Please Report Bugs git clone https://github.com/skwp/dotfiles ~/.yadr @@ -43,13 +43,13 @@ Janus is an amazing _first effort_ to deliver a ready-to-use vim setup and is a * Optimized support for Solarized color scheme only, everything guaranteed to Look Good. Your eyes will thank you. * All plugins tested with Solarized and custom color maps provided where needed to ensure your eyes will not bleed. * No configuration file to maintain. YADR uses tiny ruby scripts to wrap git submodule maintenance. - * Much cleaner vimrc that does not introduce any new key maps. (Janus: 160 lines vimrc, 260 lines gvimrc; YADR: 90 lines vimrc with great comments) + * Much cleaner vimrc that keps keymaps isolated to a plugin file (not in the main vimrc). * All keymaps and customization in small, easy to maintain files under .vim/plugin/settings * More than just vim plugins - great shell aliases, osx, and irb/pry tweaks to make you more productive. ## Screenshot -![screenshot](http://i.imgur.com/lEFlF.png) +![screenshot](http://i.imgur.com/afzuR.png) ## Before you start @@ -57,12 +57,21 @@ Janus is an amazing _first effort_ to deliver a ready-to-use vim setup and is a For the love of all that is holy, stop abusing your hands! Remap caps-lock to escape: http://pqrs.org/macosx/keyremap4macbook/extra.html +## Debugging vim keymappings + +This is so useful, it needs to be at the top. If you are having unexpected behavior, wondering why a particular key works the way it does, +use: `:map [keycombo]` (e.g. `:map `) to see what the key is mapped to. For bonus points, you can see where the mapping was set by using `:verbose map [keycombo]`. +If you omit the key combo, you'll get a list of all the maps. You can do the same thing with nmap, imap, vmap, etc. ## Dependencies YADR is opinionated. To get the most out of using it, you should install all the software it depends on. +### Patched fonts for Vim-Powerline + +Please install fonts from fonts/ directory. These are used to give a really nice vim status line. + ### [Homebrew](http://mxcl.github.com/homebrew/) Homebrew is _the missing package manager for OSX_. To install: @@ -105,6 +114,12 @@ waiting for @robbyrussell to merge the theme upstream (unknown if it will happen git remote add skwp https://github.com/skwp/oh-my-zsh.git git pull skwp master +### [fasd](https://github.com/clvv/fasd) + +fasd gives you handy shell commands `f`,`a`,`s`,`d`, and `z` to jump to recently used files. +Read more at the project's home page. Or just type `z` followed by a partial reference to +a recent directory to see how it works. + ### [Pry](http://pry.github.com/) Pry offers a much better out of the box IRB experience with colors, tab completion, and lots of other tricks. You should: @@ -125,6 +140,9 @@ git clone https://github.com/skwp/dotfiles ~/.yadr cd ~/.yadr && rake install ``` +Open the fonts in fonts/ and click Install Font for every font that you want. +You must install Inconsolata to have YADR's powerline theme work correctly out of the box. + Note: YADR will not destroy any of your files unless you tell it to. @@ -193,7 +211,7 @@ gem install awesome_print ### User Info -Since the gitconfig doesn't contain the user info, I recommend using env variables. Put the following in +Since the gitconfig doesn't contain the user info, I recommend using env variables. Put the following in your `~/.secrets` file which is automatically referenced by the provided zshrc: # Set your git user info @@ -219,7 +237,6 @@ your `~/.secrets` file which is automatically referenced by the provided zshrc: * Slightly imrpoved colors for diff * `git unstage` (remove from index) and `git uncommit` (revert to the time prior to the last commit - dangerous if already pushed) aliases - ## RubyGems A .gemrc is included. Never again type `gem install whatever --no-ri --no-rdoc`. `--no-ri --no-rdoc` is done by default. @@ -242,7 +259,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * `,z` - go to previous buffer (:bp) * `,x` - go to next buffer (:bn) - * `Ctrl-j` and `Ctrl-k` to move up and down roughly by functions + * `Cmd-j` and `Cmd-k` to move up and down roughly by functions * `Ctrl-o` - Old cursor position - this is a standard mapping but very useful, so included here * `Ctrl-i` - opposite of Ctrl-O (again, this is standard) @@ -261,9 +278,8 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke #### Rails - * `,ru` - Rails Unittest - synonym for `:AV` from rails.vim, opens up the corresponding test/spec to the file you're looking for, in a vertical split * `,ss` to run specs, `,ll` to run a given spec on a line - using my [vim-ruby-conque plugin](https://github.com/skwp/vim-ruby-conque) - * `Cmd-Shift-R` to use vim-rspec to run a spec file. `Cmd-Shift-L` to run from a line (individual it block) + * `Cmd-Shift-R` to use vim-ruby-conque to run a spec file. `Cmd-Shift-L` to run from a line (individual it block) #### Surround.vim customizations @@ -275,11 +291,12 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * `,f` - instantly Find definition of class (must have exuberant ctags installed) * `,F` - same as ,f but in a vertical split + * `,gf` - same as vim normal gf (go to file), but in a vertical split * `K` - GitGrep the current word under the cursor and show results in quickfix window * `,K` - GitGrep the current word up to next exclamation point (useful for ruby foo! methods) * `Cmd-*` - highlight all occurrences of current word (similar to regular `*` except doesn't move) * `,hl` - toggle search highlight on and off - * `,gg` - GitGrep command line with a quote pretyped (close the quote yourself) + * `,gg` - GitGrep command line, type between quotes * `,gd` - GitGrep def (greps for 'def [function name]') when cursor is over the function name * `,gcp` - GitGrep Current Partial to find references to the current view partial * `//` - clear the search @@ -314,6 +331,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * `,.` to go to last edit location instead of `'.` because the apostrophe is hard on the pinky * `Cmd-'` and `Cmd-"` to change content inside quotes * Cmd-Space to autocomplete. Tab for snipmate snippets. + * `fd` and `jk` key *chords* - hit the first two homerow buttons simultaneously on either side of the keyboard to go to beginning and end of line #### Tab Navigation @@ -322,8 +340,9 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke #### Window Navigation - * `H` `L` `I` `M` - to move left, right, up, down between windows + * `Ctrl-h,l,j,k` - to move left, right, down, up between windows * `Q` - Intelligent Window Killer. Close window `wincmd c` if there are multiple windows to same buffer, or kill the buffer `bwipeout` if this is the last window into it. + * `+` and `-` for resizing vertical windows #### Splits @@ -342,7 +361,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * `,ig` - toggle visual indentation guides * `,cf` - Copy Filename of current file into system (not vi) paste buffer - * `,cc` - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc. + * `,vc` - (Vim Command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc. * `,yw` - yank a word from anywhere within the word (so you don't have to go to the beginning of it) * `,ow` - overwrite a word with whatever is in your yank buffer - you can be anywhere on the word. saves having to visually select it * `,w` - strip trailing whitespaces @@ -351,6 +370,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * `,he` - Html Escape * `,hu` - Html Unescape * `Cmd-Shift-A` - align things (type a character/expression to align by, works in visual mode or by itself) + * `:ColorCodes` - turn on #abc123 color highlighting (useful for css) #### Comments @@ -374,7 +394,6 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * TagBar - hit ,T to see a list of methods in a class (uses ctags) * CtrlP - Ctrl-p or ,t to find a file * VimBookmarks - toggle an anonymous bookmark ,bb and go thru them ,bn ,bp and clear them ,bc - * TabMan - hit ,mt to see all tabs and buffers in a tree. Easy to navigate and close. #### Git @@ -387,6 +406,7 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * AnsiEsc - inteprets ansi color codes inside log files. great for looking at Rails logs * solarized - a color scheme scientifically calibrated for awesomeness (including skwp mods for ShowMarks) * csapprox - helps colors to be represented correctly on terminals (even though we expect to use MacVim) + * Powerline - beautiful vim status bar. Requires patched fonts (install from fonts/ directory) #### Coding @@ -421,17 +441,18 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke * surround - super easy quote and tag manipulation - ysiw" - sourround inner word with quotes. ci"' - change inner double quotes to single quotes, etc * greplace - use :Gsearch to find across many files, replace inside the changes, then :Greplace to do a replace across all matches * ConqueTerm - embedded fully colorful shell inside your vim - * vim-ruby-conque - helpers to run ruby,rspec,rake within ConqueTerm - use ,rr (ruby), ,ss (rspec), ,ll (rspec line), ,RR (rake) - * vim-rspec - really clean and colorful rspec output (Cmd-Shift-R) with ability to navigate directly to error; will replace vim-ruby-conque when I do a couple enhancements/bug fixes + * vim-ruby-conque - helpers to run ruby,rspec,rake within ConqueTerm * vim-markdown-preview - :Mm to view your README.md as html * html-escape - ,he and ,hu to escape and unescape html * ruby-debug-ide - not quite working for me, but maybe it will for you. supposedly a graphical debugger you can step through * Gundo - visualize your undos - pretty amazing plugin. Hit ,u with my keymappings to trigger it, very user friendly * slime - use ctrl-c,ctrl-c to send text to a running irb/pry/console. To start the console, you must use screen with a named session: "screen -S [name] [cmd]", ex: "screen -S pry pry" * vim-indent-guides - visual indent guides, off by default + * color_highlight - use :ColorCodes to see hex colors highlighted #### General enhancements that don't add new commands + * Arpeggio - allows you to define key-chord combinations * IndexedSearch - when you do searches will show you "Match 2 of 4" in the status line * delimitMate - automatically closes quotes * syntastic - automatic syntax checking when you save the file @@ -508,11 +529,6 @@ And everything that's in the modules included in vim/bundle of course. Please explore these people's work. -### Coming Soon - - * Automatic installation setup - - ### Contributors * Initial Version: @skwp diff --git a/bin/fasd b/bin/fasd new file mode 100755 index 0000000..8944455 --- /dev/null +++ b/bin/fasd @@ -0,0 +1,595 @@ +#!/usr/bin/env sh + +# Fasd (this file) can be sourced or executed by any POSIX compatible shell. + +# Fasd is originally written based on code from z (https://github.com/rupa/z) +# by rupa deadwyler under the WTFPL license. Most if not all of the code has +# been rewritten. + +# Copyright (C) 2011, 2012 by Wei Dai. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +fasd() { + + case "$1" in + --init) + shift + while [ "$1" ]; do + case $1 in + env) + { # source rc files if present + [ -s "/etc/fasdrc" ] && . "/etc/fasdrc" + [ -s "$HOME/.fasdrc" ] && . "$HOME/.fasdrc" + + # set default options + [ -z "$_FASD_DATA" ] && _FASD_DATA="$HOME/.fasd" + [ -z "$_FASD_BLACKLIST" ] && _FASD_BLACKLIST="--help" + [ -z "$_FASD_SHIFT" ] && _FASD_SHIFT="sudo busybox" + [ -z "$_FASD_IGNORE" ] && _FASD_IGNORE="fasd cd ls echo" + [ -z "$_FASD_SINK" ] && _FASD_SINK=/dev/null + [ -z "$_FASD_TRACK_PWD" ] && _FASD_TRACK_PWD=1 + [ -z "$_FASD_MAX" ] && _FASD_MAX=2000 + [ -z "$_FASD_BACKENDS" ] && _FASD_BACKENDS=native + + if [ -z "$_FASD_AWK" ]; then + # awk preferences + local awk; for awk in mawk gawk original-awk nawk awk; do + $awk "" && _FASD_AWK=$awk && break + done + fi + } >> "${_FASD_SINK:-/dev/null}" 2>&1 + ;; + + auto) cat <> "$_FASD_SINK" 2>&1 + +EOS + ;; + + posix-alias) cat <> "$_FASD_SINK" 2>&1 +} +autoload -U add-zsh-hook +add-zsh-hook preexec _fasd_preexec + +EOS + ;; + + bash-hook) cat <> "$_FASD_SINK" 2>&1 +} +echo "\$PS1" | grep -v -q "_fasd_ps1_func" && \ +export PS1="\\\$(_fasd_ps1_func)\$PS1" + +EOS + ;; + + zsh-ccomp) cat <> "$_FASD_SINK" | sed -n "\\\$s/^.*'\(.*\)'/\1/p") \${COMP_LINE#* }" ) + IFS=\$'\n' COMPREPLY=( \$RESULT ) +} +_fasd_bash_hook_cmd_complete() { + for cmd in \$*; do + complete -F _fasd_bash_cmd_complete \$cmd + done +} + +EOS + ;; + + bash-wcomp) cat <> "$_FASD_SINK" 2>&1 +_fasd_bash_word_complete_trigger() { + [ "\$_fasd_cur" ] || local _fasd_cur="\${COMP_WORDS[COMP_CWORD]}" + eval "\$(fasd --word-complete-trigger _fasd_bash_word_complete \$_fasd_cur)" +} >> "$_FASD_SINK" 2>&1 +_fasd_bash_word_complete_wrap() { + local _fasd_cur="\${COMP_WORDS[COMP_CWORD]}" + _fasd_bash_word_complete_trigger + local z=\${COMP_WORDS[0]} + # try original comp func + [ "\$COMPREPLY" ] || eval "\$( echo "\$_FASD_BASH_COMPLETE_P" | \ + sed -n "/ \$z\$/"'s/.*-F \(.*\) .*/\1/p' )" + # fall back on original complete options + local cmd="\$(echo "\$_FASD_BASH_COMPLETE_P" | \ + sed -n "/ \$z\$/"'s/complete/compgen/') \$_fasd_cur" + [ "\$COMPREPLY" ] || COMPREPLY=( \$(eval \$cmd) ) +} >> "$_FASD_SINK" 2>&1 + +EOS + ;; + + bash-ccomp-install) cat <> "$_FASD_SINK" 2>&1 + +EOS + ;; + esac; shift + done + ;; + + --init-alias) + fasd --init posix-alias + ;; + + --init-zsh) + fasd --init zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install + ;; + + --init-bash) + fasd --init bash-hook bash-ccomp bash-ccomp-install + ;; + + --init-posix) + fasd --init posix-hook + ;; + + # if "$_fasd_cur" is a query, then eval all the arguments + --word-complete-trigger) + shift; [ "$2" ] && local _fasd_cur="$2" || return + case "$_fasd_cur" in + ,*) echo "$1" e "$_fasd_cur";; + f,*) echo "$1" f "${_fasd_cur#?}";; + d,*) echo "$1" d "${_fasd_cur#?}";; + *,,) echo "$1" e "$_fasd_cur";; + *,,f) echo "$1" f "${_fasd_cur%?}";; + *,,d) echo "$1" d "${_fasd_cur%?}";; + esac + ;; + + --sanitize) + shift; echo "$@" | \ + sed 's/\([^\]\)$([^ ]*\([^)]*\)))*/\1\2/g;s/\([^\]\)[|&;<>$`]\{1,\}/\1 /g' + ;; + + --proc) shift # process commands + # stop if we don't own ~/.fasd (we're another user but our ENV is still set) + [ -f "$_FASD_DATA" -a ! -O "$_FASD_DATA" ] && return + + # make zsh do word splitting for the for loop to work + [ "$ZSH_VERSION" ] && emulate sh && setopt localoptions + + # blacklists + local each; for each in $_FASD_BLACKLIST; do + case " $* " in *\ $each\ *) return;; esac + done + + # shifts + while true; do + case " $_FASD_SHIFT " in + *\ $1\ *) shift;; + *) break + esac + done + + # ignores + case " $_FASD_IGNORE " in + *\ $1\ *) return + esac + + shift; fasd --add "$@" # add all arguments except command + ;; + + --add|-A) shift # add entries + # find all valid path arguments, convert them to simplest absolute form + local paths="$(while [ "$1" ]; do + [ -e "$1" ] && echo "$1"; shift + done | sed '/^[^/]/s@^@'"$PWD"'/@ + s@/\.\.$@/\.\./@;s@/\(\./\)\{1,\}@/@g;: 0;s@[^/][^/]*//*\.\./@/@;t 0 + s@^/*\.\./@/@;s@//*@/@g;s@/\.\{0,1\}$@@;s@^$@/@' | tr '\n' '|')" + + # add current pwd if the option is set + [ "$_FASD_TRACK_PWD" = "1" -a "$PWD" != "$HOME" ] && paths="$paths|$PWD" + + [ -z "${paths##\|}" ] && return # stop if we have nothing to add + + # maintain the file + local tempfile + tempfile="$(mktemp "$_FASD_DATA".XXXXXX)" || return + $_FASD_AWK -v list="$paths" -v now="$(date +%s)" -v max="$_FASD_MAX" -F"|" ' + BEGIN { + split(list, files, "|") + for(i in files) { + path = files[i] + if(path == "") continue + paths[path] = path # array for checking + rank[path] = 1 + time[path] = now + } + } + $2 >= 1 { + if($1 in paths) { + rank[$1] = $2 + 1 + time[$1] = now + } else { + rank[$1] = $2 + time[$1] = $3 + } + count += $2 + } + END { + if(count > max) + for(i in rank) print i "|" 0.9*rank[i] "|" time[i] # aging + else + for(i in rank) print i "|" rank[i] "|" time[i] + }' "$_FASD_DATA" 2>> "$_FASD_SINK" >| "$tempfile" + if [ $? -ne 0 -a -f "$_FASD_DATA" ]; then + env rm -f "$tempfile" + else + env mv -f "$tempfile" "$_FASD_DATA" + fi + ;; + + --delete|-D) shift # delete entries + # turn valid arguments into entry-deleting sed commands + local sed_cmd="$(while [ "$1" ]; do echo "$1"; shift; done | \ + sed '/^[^/]/s@^@'"$PWD"'/@;s@/\.\.$@/\.\./@;s@/\(\./\)\{1,\}@/@g + : 0;s@[^/][^/]*//*\.\./@/@;t 0;s@^/*\.\./@/@;s@//*@/@g;s@/\.\{0,1\}$@@ + s@^$@/@;s@\([.[/*^$]\)@\\\1@g;s@^\(.*\)$@/^\1|/d@')" + + # maintain the file + local tempfile + tempfile="$(mktemp "$_FASD_DATA".XXXXXX)" || return + + sed -e "$sed_cmd" "$_FASD_DATA" 2>> "$_FASD_SINK" >| "$tempfile" + + if [ $? -ne 0 -a -f "$_FASD_DATA" ]; then + env rm -f "$tempfile" + else + env mv -f "$tempfile" "$_FASD_DATA" + fi + ;; + + --query) shift # query the db, --query [$typ ["$fnd" [$mode [$quote]]]] + [ -f "$_FASD_DATA" ] || return # no db yet + [ "$1" ] && local typ="$1" + [ "$2" ] && local fnd="$2" + [ "$3" ] && local mode="$3" + [ "$4" ] && local quote="$4" + [ "$quote" ] && local qts='"\""' || local qts= + + # make zsh do word spliting for the for loop to work + [ "$ZSH_VERSION" ] && emulate sh && setopt localoptions + + # cat all backends + local each _fasd_data; for each in $_FASD_BACKENDS; do + _fasd_data="$_fasd_data +$(fasd --backend $each)" + done + [ "$_fasd_data" ] || _fasd_data="$(cat "$_FASD_DATA")" + + # set mode specific code for calculating the prior + case $mode in + rank) local prior='times[i]';; + recent) local prior='sqrt(100000/(1+t-la[i]))';; + *) local prior='times[i] * frecent(la[i])';; + esac + + # query the database + echo "$_fasd_data" | while read line; do + [ -${typ:-e} "${line%%\|*}" ] && echo "$line" + done | $_FASD_AWK -v t="$(date +%s)" -v q="$fnd" -F"|" ' + function frecent(time) { + dx = t-time + if( dx < 3600 ) return 6 + if( dx < 86400 ) return 4 + if( dx < 604800 ) return 2 + return 1 + } + function likelihood(pattern, path) { + m = gsub("/+", "/", path) + r = 1 + for(i in pattern) { + tmp = path + gsub(".*" pattern[i], "", tmp) + n = gsub("/+", "/", tmp) + if(n == m) + return 0 + else if(n == 0) + r *= 20 # F + else + r *= 1 - (n / m) + } + return r + } + BEGIN { + split(q, pattern, " ") + for(i in pattern) pattern_lower[i] = tolower(pattern[i]) # nocase + } + { + if(!wcase[$1]) { + times[$1] = $2 + la[$1] = $3 + wcase[$1] = likelihood(pattern, $1) + if(!cx) nocase[$1] = likelihood(pattern_lower, tolower($1)) + } else { + times[$1] += $2 + if($3 > la[$1]) la[$1] = $3 + } + cx = cx || wcase[$1] + ncx = ncx || nocase[$1] + } + END { + if(cx) { + for(i in wcase) { + if(wcase[i]) + printf "%-10s %s\n", '"$prior"' * wcase[i], '"$qts"' i '"$qts"' + } + } else if(ncx) { + for(i in nocase) { + if(nocase[i]) + printf "%-10s %s\n", '"$prior"' * nocase[i], '"$qts"' i '"$qts"' + } + } + }' - 2>> "$_FASD_SINK" + ;; + + --backend) + case $2 in + native) cat "$_FASD_DATA";; + viminfo) + local t="$(date +%s)" + < "$HOME/.viminfo" sed -n '/^>/{s@~@'"$HOME"'@;p}' | \ + while IFS=" " read line; do + t=$((t-60)); echo "${line#??}|1|$t" + done + ;; + recently-used) + tr -d '\n' < "$HOME/.local/share/recently-used.xbel" | \ + sed 's@file:/@\n@g;s@count="@\n@g' | sed '1d;s/".*$//' | \ + tr '\n' '|' | sed 's@|/@\n@g' | $_FASD_AWK -F'|' '{ + sum = 0 + for( i=2; i<=NF; i++ ) sum += $i + print $1 "|" sum + }' + ;; + *) eval "$2";; + esac + ;; + + *) # parsing logic and processing + local fnd last _FASD_BACKENDS="$_FASD_BACKENDS" _fasd_data + while [ "$1" ]; do case "$1" in + --complete) [ "$2" = "--" ] && shift; set -- $(echo $2); local lst=1 r=r;; + --query|--add|--delete|-A|-D) fasd "$@"; return $?;; + --version) echo "0.5.4"; return 0;; + --) while [ "$2" ]; do shift; fnd="$fnd$1 "; last="$1"; done;; + -*) local o="${1#-}"; while [ "$o" ]; do case "$o" in + s*) local show=1;; + l*) local lst=1;; + i*) local interactive=1 show=1;; + r*) local mode=rank;; + t*) local mode=recent;; + e*) o="${o#?}"; if [ "$o" ]; then # there are characters after "-e" + local exec="$o" # anything after "-e" + else # use the next argument + local exec="${2:?"-e: Argument needed "}" + shift + fi; break;; + b*) o="${o#?}"; if [ "$o" ]; then + _FASD_BACKENDS="$o" + else + _FASD_BACKENDS="${2:?"-b: Argument needed"}" + shift + fi; break;; + B*) o="${o#?}"; if [ "$o" ]; then + _FASD_BACKENDS="$_FASD_BACKENDS $o" + else + _FASD_BACKENDS="$_FASD_BACKENDS ${2:?"-B: Argument needed"}" + shift + fi; break;; + a*) local typ=e;; + d*) local typ=d;; + f*) local typ=f;; + q*) local quote=1;; + h*) echo "fasd [options] [query ...] +[f|a|s|d|z] [opions] [query ...] + options: + -s show list of files with their ranks + -l list paths only + -i interactive mode + -e set command to execute on the result file + -b only use backend + -b add additional backend + -a match files and directories + -d match directories only + -f match files only + -r match by rank only + -t match by recent access only + -h show a brief help message + +fasd [-A|-D] [paths ...] + -A add paths + -D delete paths" >&2; return;; + esac; o="${o#?}"; done;; + *) fnd="$fnd $1"; last="$1";; + esac; shift; done + + # if we hit enter on a completion just execute + case "$last" in + # completions will always start with / + /*) [ -z "$show$lst" -a -${typ:-e} "$last" -a "$exec" ] \ + && eval $exec "\"$last\"" && return;; + esac + + local result + result="$(fasd --query 2>> "$_FASD_SINK")" # query the database + [ $? -gt 0 ] && return + if [ "$interactive" ] || [ "$exec" -a -z "$fnd$lst$show" -a -t 1 ]; then + result="$(echo "$result" | sort -nr)" + echo "$result" | sed = | sed 'N;s/\n/ /' | sort -nr >&2; printf "> " >&2 + local i; read i; [ 0 -lt "${i:-0}" ] 2>> "$_FASD_SINK" || return 1 + result="$(echo "$result" | sed -n "${i:-1}"'s/^[0-9.]*[ ]*//p')" + if [ "$result" ]; then + fasd --add "$result"; eval ${exec:-echo} "\"$result\"" + fi + elif [ "$lst" ]; then + echo "$result" | sort -n${r} | sed 's/^[0-9.]*[ ]*//' + elif [ "$show" ]; then + echo "$result" | sort -n + elif [ "$fnd" -a "$exec" ]; then # exec + result="$(echo "$result" | sort -n | sed -n '$s/^[0-9.]*[ ]*//p')" + fasd --add "$result"; eval $exec "\"$result\"" + elif [ "$fnd" -a ! -t 1 ]; then # echo if output is not terminal + result="$(echo "$result" | sort -n | sed -n '$s/^[0-9.]*[ ]*//p')" + fasd --add "$result"; echo "$result" + else # no args, show + echo "$result" | sort -n + fi + + esac +} + +fasd --init env + +case $- in + *i*) ;; # assume being sourced, do nothing + *) # assume being executed as an executable + if [ -x "$_FASD_SHELL" -a -z "$_FASD_SET" ]; then + _FASD_SET=1 exec $_FASD_SHELL "$0" "$@" + else + fasd "$@" + fi +esac + diff --git a/fonts/Inconsolata-dz-Powerline.otf b/fonts/Inconsolata-dz-Powerline.otf new file mode 100644 index 0000000..51bdd74 Binary files /dev/null and b/fonts/Inconsolata-dz-Powerline.otf differ diff --git a/fonts/Menlo-Powerline.otf b/fonts/Menlo-Powerline.otf new file mode 100644 index 0000000..417a3fa Binary files /dev/null and b/fonts/Menlo-Powerline.otf differ diff --git a/fonts/mensch-Powerline.otf b/fonts/mensch-Powerline.otf new file mode 100644 index 0000000..2eb2232 Binary files /dev/null and b/fonts/mensch-Powerline.otf differ diff --git a/git/gitconfig b/git/gitconfig index 957f36c..635695e 100644 --- a/git/gitconfig +++ b/git/gitconfig @@ -39,8 +39,7 @@ last = diff HEAD^ # diff last committed change # log - log = log --decorate --graph --date=short - l = log + l = log --graph --date=short changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" changelog = log --pretty=format:\" * %s\" diff --git a/vim/bundle/AndrewRadev-splitjoin b/vim/bundle/AndrewRadev-splitjoin index 9896c3a..d1b5511 160000 --- a/vim/bundle/AndrewRadev-splitjoin +++ b/vim/bundle/AndrewRadev-splitjoin @@ -1 +1 @@ -Subproject commit 9896c3a62514ca0a2902acf37398ddc36fbcaa8f +Subproject commit d1b5511a31a1f8f317b9ba0c95b0bc05579bc3e4 diff --git a/vim/bundle/MarcWeber-vim-addon-mw-utils b/vim/bundle/MarcWeber-vim-addon-mw-utils new file mode 160000 index 0000000..a2676b4 --- /dev/null +++ b/vim/bundle/MarcWeber-vim-addon-mw-utils @@ -0,0 +1 @@ +Subproject commit a2676b4225b8a370b9e7046c5fc2f5ad1155e590 diff --git a/vim/bundle/Shougo-neocomplcache b/vim/bundle/Shougo-neocomplcache index b2dc841..1ee7250 160000 --- a/vim/bundle/Shougo-neocomplcache +++ b/vim/bundle/Shougo-neocomplcache @@ -1 +1 @@ -Subproject commit b2dc8412a431bd22305510770f7eeb8f0af59a80 +Subproject commit 1ee725015543c00033f16eb5d3076feb186f9f15 diff --git a/vim/bundle/VimEz-ShowMarks b/vim/bundle/VimEz-ShowMarks new file mode 160000 index 0000000..b61e9fc --- /dev/null +++ b/vim/bundle/VimEz-ShowMarks @@ -0,0 +1 @@ +Subproject commit b61e9fca473963a6b36798b830f5d12f820b7adc diff --git a/vim/bundle/chrisbra-color_highlight b/vim/bundle/chrisbra-color_highlight new file mode 160000 index 0000000..f2ea655 --- /dev/null +++ b/vim/bundle/chrisbra-color_highlight @@ -0,0 +1 @@ +Subproject commit f2ea655d7be8dcebea68c082f694f109461c2376 diff --git a/vim/bundle/claco-jasmine b/vim/bundle/claco-jasmine index 525ba38..9e389d6 160000 --- a/vim/bundle/claco-jasmine +++ b/vim/bundle/claco-jasmine @@ -1 +1 @@ -Subproject commit 525ba3857ab4628091f67a9b14638b3f9fa77568 +Subproject commit 9e389d6159515d2eaf617b658bf38cb0a59c144e diff --git a/vim/bundle/dterei-VimBookmarking b/vim/bundle/dterei-VimBookmarking index 95a809c..caf3131 160000 --- a/vim/bundle/dterei-VimBookmarking +++ b/vim/bundle/dterei-VimBookmarking @@ -1 +1 @@ -Subproject commit 95a809c05aebe0404b1619a5a21124133b435976 +Subproject commit caf31313943d2078b925adaf2c9625dce2482038 diff --git a/vim/bundle/ecomba-vim-ruby-refactoring b/vim/bundle/ecomba-vim-ruby-refactoring index 5a06bf8..6447a4d 160000 --- a/vim/bundle/ecomba-vim-ruby-refactoring +++ b/vim/bundle/ecomba-vim-ruby-refactoring @@ -1 +1 @@ -Subproject commit 5a06bf807d439f71c47c0f640fefbd46ffe10e18 +Subproject commit 6447a4debc3263a0fa99feeab5548edf27ecf045 diff --git a/vim/bundle/garbas-vim-showmarks b/vim/bundle/garbas-vim-showmarks deleted file mode 160000 index 11d9fb0..0000000 --- a/vim/bundle/garbas-vim-showmarks +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 11d9fb0e38a3894f23b9de69aa3e3990a685d73c diff --git a/vim/bundle/garbas-vim-snipmate b/vim/bundle/garbas-vim-snipmate new file mode 160000 index 0000000..f1e8510 --- /dev/null +++ b/vim/bundle/garbas-vim-snipmate @@ -0,0 +1 @@ +Subproject commit f1e851048fefca4be5a4913596a9288f6ccdf6d8 diff --git a/vim/bundle/honza-snipmate-snippets b/vim/bundle/honza-snipmate-snippets new file mode 160000 index 0000000..b347b12 --- /dev/null +++ b/vim/bundle/honza-snipmate-snippets @@ -0,0 +1 @@ +Subproject commit b347b12dcfd341d3f038d2486ba714c5ac437402 diff --git a/vim/bundle/int3-vim-extradite b/vim/bundle/int3-vim-extradite index 1906606..68d7b0b 160000 --- a/vim/bundle/int3-vim-extradite +++ b/vim/bundle/int3-vim-extradite @@ -1 +1 @@ -Subproject commit 1906606b0e4d7d74764c1b0c1a3e24ed29338492 +Subproject commit 68d7b0bcbaff7846265c8e9f431976634382db0c diff --git a/vim/bundle/jistr-vim-nerdtree-tabs b/vim/bundle/jistr-vim-nerdtree-tabs index 8d27da4..6ee677e 160000 --- a/vim/bundle/jistr-vim-nerdtree-tabs +++ b/vim/bundle/jistr-vim-nerdtree-tabs @@ -1 +1 @@ -Subproject commit 8d27da40c918c5fb6695c52b6fe16f27326e5c94 +Subproject commit 6ee677e9788748f6258a7a832f360be775022a73 diff --git a/vim/bundle/joestelmach-javaScriptLint b/vim/bundle/joestelmach-javaScriptLint deleted file mode 160000 index f499953..0000000 --- a/vim/bundle/joestelmach-javaScriptLint +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f4999532c67f7cf5a5c13346aaf22ce818e35994 diff --git a/vim/bundle/jpalardy-vim-slime b/vim/bundle/jpalardy-vim-slime index c029aec..9d4a977 160000 --- a/vim/bundle/jpalardy-vim-slime +++ b/vim/bundle/jpalardy-vim-slime @@ -1 +1 @@ -Subproject commit c029aec736ade7143bfe9b009f344af4bdf49c1d +Subproject commit 9d4a97714159255a80193652675c0649bdabf89a diff --git a/vim/bundle/kana-vim-arpeggio b/vim/bundle/kana-vim-arpeggio new file mode 160000 index 0000000..c0a4929 --- /dev/null +++ b/vim/bundle/kana-vim-arpeggio @@ -0,0 +1 @@ +Subproject commit c0a4929c940e4fb32f8aaa70440da113c7064467 diff --git a/vim/bundle/kana-vim-textobj-user b/vim/bundle/kana-vim-textobj-user index 3f6f6b0..1b73833 160000 --- a/vim/bundle/kana-vim-textobj-user +++ b/vim/bundle/kana-vim-textobj-user @@ -1 +1 @@ -Subproject commit 3f6f6b0ba63d681434a728ce7cfdd3ed0bcf9ede +Subproject commit 1b738334952a7944d3591253dcc3576b1ccb2c9d diff --git a/vim/bundle/kchmck-vim-coffee-script b/vim/bundle/kchmck-vim-coffee-script index 2591fef..e630946 160000 --- a/vim/bundle/kchmck-vim-coffee-script +++ b/vim/bundle/kchmck-vim-coffee-script @@ -1 +1 @@ -Subproject commit 2591fefbc78ee7448da8da4a0537a531f710c743 +Subproject commit e63094684bf6c6a99485e76b786999443d346d94 diff --git a/vim/bundle/kien-ctrlp b/vim/bundle/kien-ctrlp index 99542d2..a82a75c 160000 --- a/vim/bundle/kien-ctrlp +++ b/vim/bundle/kien-ctrlp @@ -1 +1 @@ -Subproject commit 99542d295b54dab166707eeeba754bd7f8592b8e +Subproject commit a82a75c134a2389a6753f06ff26286be750a8beb diff --git a/vim/bundle/kien-tabman b/vim/bundle/kien-tabman deleted file mode 160000 index a291c1f..0000000 --- a/vim/bundle/kien-tabman +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a291c1fbd8eec4c499f7d780055c2d3b8b1a0d96 diff --git a/vim/bundle/majutsushi-tagbar b/vim/bundle/majutsushi-tagbar index 52fe2b7..f6a02c9 160000 --- a/vim/bundle/majutsushi-tagbar +++ b/vim/bundle/majutsushi-tagbar @@ -1 +1 @@ -Subproject commit 52fe2b7c3a6c74f1fc8cb311e0bcc6fe8c09fddb +Subproject commit f6a02c9e24a1731b06db492dd8c22b0ce2474888 diff --git a/vim/bundle/mattn-gist-vim b/vim/bundle/mattn-gist-vim index dff81c9..6986833 160000 --- a/vim/bundle/mattn-gist-vim +++ b/vim/bundle/mattn-gist-vim @@ -1 +1 @@ -Subproject commit dff81c9ec21fa96bb906db4ef355021b9e7cb394 +Subproject commit 6986833aecec987faae46079ba0a320dc113214e diff --git a/vim/bundle/mattn-zencoding-vim b/vim/bundle/mattn-zencoding-vim index a386d41..01524e2 160000 --- a/vim/bundle/mattn-zencoding-vim +++ b/vim/bundle/mattn-zencoding-vim @@ -1 +1 @@ -Subproject commit a386d4138417499f63b1dba0dc6941d3911e8113 +Subproject commit 01524e272fc6421a0ac6e2f21880bd6d1d5c9e28 diff --git a/vim/bundle/mikefarmer-snipmate b/vim/bundle/mikefarmer-snipmate deleted file mode 160000 index a8f1bc5..0000000 --- a/vim/bundle/mikefarmer-snipmate +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a8f1bc55dad9a734837ca456dac8879e14b3a245 diff --git a/vim/bundle/nathanaelkane-vim-indent-guides b/vim/bundle/nathanaelkane-vim-indent-guides index f1c115c..cf6f4d4 160000 --- a/vim/bundle/nathanaelkane-vim-indent-guides +++ b/vim/bundle/nathanaelkane-vim-indent-guides @@ -1 +1 @@ -Subproject commit f1c115ce5dba08968a0b4693aa601b0eb5bd4609 +Subproject commit cf6f4d46614ffd968b80f876b618ee77c5ccc8b3 diff --git a/vim/bundle/raimondi-delimitMate b/vim/bundle/raimondi-delimitMate index 39b8298..0b34aea 160000 --- a/vim/bundle/raimondi-delimitMate +++ b/vim/bundle/raimondi-delimitMate @@ -1 +1 @@ -Subproject commit 39b8298390a9171c796df077ad3c5f3c0f111c56 +Subproject commit 0b34aea202daee0a3e85ce948bc9c9f8082f1899 diff --git a/vim/bundle/rson-vim-conque b/vim/bundle/rson-vim-conque deleted file mode 160000 index da35739..0000000 --- a/vim/bundle/rson-vim-conque +++ /dev/null @@ -1 +0,0 @@ -Subproject commit da35739921a258ecce991040f9b1537897a8ff57 diff --git a/vim/bundle/scrooloose-nerdtree b/vim/bundle/scrooloose-nerdtree index 4bd0def..678bb28 160000 --- a/vim/bundle/scrooloose-nerdtree +++ b/vim/bundle/scrooloose-nerdtree @@ -1 +1 @@ -Subproject commit 4bd0def6fb642e428a887ef83f11a8a267209004 +Subproject commit 678bb2816874d92bca4eea46e0f5f40a15ddab68 diff --git a/vim/bundle/scrooloose-syntastic b/vim/bundle/scrooloose-syntastic index fe5b898..9f1cdfd 160000 --- a/vim/bundle/scrooloose-syntastic +++ b/vim/bundle/scrooloose-syntastic @@ -1 +1 @@ -Subproject commit fe5b8989afa1859751acc34d9c0c6f8ccef44f6a +Subproject commit 9f1cdfd92c7d3c8147ef9c4650d9de210d3afaa2 diff --git a/vim/bundle/sjbach-lusty b/vim/bundle/sjbach-lusty index 6b59f0d..0cd4a56 160000 --- a/vim/bundle/sjbach-lusty +++ b/vim/bundle/sjbach-lusty @@ -1 +1 @@ -Subproject commit 6b59f0db14e76d14ce979648f7592abc7d7e0cb4 +Subproject commit 0cd4a566bda2307cef9dd641b2f974e3e5b17bfb diff --git a/vim/bundle/sjl-gundo b/vim/bundle/sjl-gundo index 12b6f67..dea060d 160000 --- a/vim/bundle/sjl-gundo +++ b/vim/bundle/sjl-gundo @@ -1 +1 @@ -Subproject commit 12b6f67aeb892519385529b2b5cdda55cc428d9d +Subproject commit dea060dafe83ec111d8601d455136a36ec9bc257 diff --git a/vim/bundle/skwp-vim-colors-solarized b/vim/bundle/skwp-vim-colors-solarized index b2dbf4e..16c68cf 160000 --- a/vim/bundle/skwp-vim-colors-solarized +++ b/vim/bundle/skwp-vim-colors-solarized @@ -1 +1 @@ -Subproject commit b2dbf4e0a7aa9cbb91d19cfec68901ef4e6906a6 +Subproject commit 16c68cf20d7c0fa654025cf01da528db933c40b8 diff --git a/vim/bundle/skwp-vim-conque b/vim/bundle/skwp-vim-conque new file mode 160000 index 0000000..00890b5 --- /dev/null +++ b/vim/bundle/skwp-vim-conque @@ -0,0 +1 @@ +Subproject commit 00890b58ca8821c9eda2f25a993a8f09a1ae0465 diff --git a/vim/bundle/skwp-vim-powerline b/vim/bundle/skwp-vim-powerline new file mode 160000 index 0000000..fa87701 --- /dev/null +++ b/vim/bundle/skwp-vim-powerline @@ -0,0 +1 @@ +Subproject commit fa8770161f9dafe40ae08d4a8485f2a2452ff200 diff --git a/vim/bundle/skwp-vim-rspec b/vim/bundle/skwp-vim-rspec deleted file mode 160000 index 9b886ec..0000000 --- a/vim/bundle/skwp-vim-rspec +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9b886ecef14e481a5a367fca6c047adddba92b05 diff --git a/vim/bundle/skwp-vim-ruby-conque b/vim/bundle/skwp-vim-ruby-conque index cd3273e..48b737e 160000 --- a/vim/bundle/skwp-vim-ruby-conque +++ b/vim/bundle/skwp-vim-ruby-conque @@ -1 +1 @@ -Subproject commit cd3273e1a5e42a27167fe86f8ae93507f6e2e2b7 +Subproject commit 48b737ef422482246dd0187cd8a8751d528da084 diff --git a/vim/bundle/tomtom-tcomment_vim b/vim/bundle/tomtom-tcomment_vim index 550cc0b..87adab0 160000 --- a/vim/bundle/tomtom-tcomment_vim +++ b/vim/bundle/tomtom-tcomment_vim @@ -1 +1 @@ -Subproject commit 550cc0bbed51fabf9d8d08ebe9cfc296efbf5d88 +Subproject commit 87adab024258071cd4bc6055d544605505a160e1 diff --git a/vim/bundle/tomtom-tlib_vim b/vim/bundle/tomtom-tlib_vim new file mode 160000 index 0000000..4bfa2df --- /dev/null +++ b/vim/bundle/tomtom-tlib_vim @@ -0,0 +1 @@ +Subproject commit 4bfa2df5cfe9a139d65ab9a3ca1609623e968b90 diff --git a/vim/bundle/tpope-vim-endwise b/vim/bundle/tpope-vim-endwise index 9a9d199..74306aa 160000 --- a/vim/bundle/tpope-vim-endwise +++ b/vim/bundle/tpope-vim-endwise @@ -1 +1 @@ -Subproject commit 9a9d1994eaeae3f2f23da6bb71111782ab70276c +Subproject commit 74306aa18c03ee2fdb044609e6f0bc866872711d diff --git a/vim/bundle/tpope-vim-fugitive b/vim/bundle/tpope-vim-fugitive index fc0c98f..0949a2e 160000 --- a/vim/bundle/tpope-vim-fugitive +++ b/vim/bundle/tpope-vim-fugitive @@ -1 +1 @@ -Subproject commit fc0c98f5c0533fe14da20516f901b933324130f3 +Subproject commit 0949a2e639187fa1907391e8ee178ca3549c793a diff --git a/vim/bundle/tpope-vim-git b/vim/bundle/tpope-vim-git index d058250..a052724 160000 --- a/vim/bundle/tpope-vim-git +++ b/vim/bundle/tpope-vim-git @@ -1 +1 @@ -Subproject commit d058250916346f9957e13e1a6a268d705011a993 +Subproject commit a05272481b28fa69c5d43f81d227b0ad92b26a11 diff --git a/vim/bundle/tpope-vim-haml b/vim/bundle/tpope-vim-haml index a995d4a..3490c63 160000 --- a/vim/bundle/tpope-vim-haml +++ b/vim/bundle/tpope-vim-haml @@ -1 +1 @@ -Subproject commit a995d4aabb794bd60028537ecb41ca7f2c738e65 +Subproject commit 3490c63d6827eb1c5fa31e51f090a7d6ca4bc563 diff --git a/vim/bundle/tpope-vim-pathogen b/vim/bundle/tpope-vim-pathogen index ab64b4d..c9fb89d 160000 --- a/vim/bundle/tpope-vim-pathogen +++ b/vim/bundle/tpope-vim-pathogen @@ -1 +1 @@ -Subproject commit ab64b4ddd0c184a528780b498a0b0a5b40248f7c +Subproject commit c9fb89dd6efdeedb95c411ec78b3a9493602d33d diff --git a/vim/bundle/tpope-vim-rails b/vim/bundle/tpope-vim-rails index e45164c..18622f4 160000 --- a/vim/bundle/tpope-vim-rails +++ b/vim/bundle/tpope-vim-rails @@ -1 +1 @@ -Subproject commit e45164cbba5beee4bd65096dad31f31124a2cc18 +Subproject commit 18622f4b32673c397119f0eef9105271b58c3849 diff --git a/vim/bundle/tpope-vim-repeat b/vim/bundle/tpope-vim-repeat index cdffdd4..2914f11 160000 --- a/vim/bundle/tpope-vim-repeat +++ b/vim/bundle/tpope-vim-repeat @@ -1 +1 @@ -Subproject commit cdffdd43816ddaeee858ae42da3ab6ddcfa25d19 +Subproject commit 2914f11f7494adefaaec1d8c817a301c464c94b2 diff --git a/vim/bundle/tpope-vim-surround b/vim/bundle/tpope-vim-surround index 4eb2cdf..489a1e8 160000 --- a/vim/bundle/tpope-vim-surround +++ b/vim/bundle/tpope-vim-surround @@ -1 +1 @@ -Subproject commit 4eb2cdfccc016889acfa3b5d63e8f390a87863cf +Subproject commit 489a1e8c676ad47dd358dbf883bfaf492148d38b diff --git a/vim/bundle/tpope-vim-unimpaired b/vim/bundle/tpope-vim-unimpaired index 8505f2e..e801372 160000 --- a/vim/bundle/tpope-vim-unimpaired +++ b/vim/bundle/tpope-vim-unimpaired @@ -1 +1 @@ -Subproject commit 8505f2eb3d7ff2bd0810f6e06cb103d783c05f5a +Subproject commit e8013727a008a68664a789fe0d2b5c2ab2ecf657 diff --git a/vim/bundle/vim-ruby-vim-ruby b/vim/bundle/vim-ruby-vim-ruby index f265e6b..8e4076a 160000 --- a/vim/bundle/vim-ruby-vim-ruby +++ b/vim/bundle/vim-ruby-vim-ruby @@ -1 +1 @@ -Subproject commit f265e6b09f943d79582244e487a4fa80a9584aa1 +Subproject commit 8e4076a6e54aa4679e664fa5eaa2c5ea002e2fcb diff --git a/vim/bundle/vim-scripts-AutoTag b/vim/bundle/vim-scripts-AutoTag index 9cc2e4d..ef0a37e 160000 --- a/vim/bundle/vim-scripts-AutoTag +++ b/vim/bundle/vim-scripts-AutoTag @@ -1 +1 @@ -Subproject commit 9cc2e4d77e52ff0237126b51d265e18c3e934da7 +Subproject commit ef0a37e8da77cd6c40d97a8e7a60c33ddc39d6ba diff --git a/vim/bundle/vim-scripts-camelcasemotion b/vim/bundle/vim-scripts-camelcasemotion new file mode 160000 index 0000000..8db17bd --- /dev/null +++ b/vim/bundle/vim-scripts-camelcasemotion @@ -0,0 +1 @@ +Subproject commit 8db17bdee3f42bd71839ead2a84b2ee1916e45c2 diff --git a/vim/bundle/vim-scripts-taglist b/vim/bundle/vim-scripts-taglist deleted file mode 160000 index 53041fb..0000000 --- a/vim/bundle/vim-scripts-taglist +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 53041fbc45398a9af631a20657e109707a455339 diff --git a/vim/bundle/wavded-vim-stylus b/vim/bundle/wavded-vim-stylus index 9f9031f..bb7ee82 160000 --- a/vim/bundle/wavded-vim-stylus +++ b/vim/bundle/wavded-vim-stylus @@ -1 +1 @@ -Subproject commit 9f9031f13f549c901fdedec384f865d06fb1f82c +Subproject commit bb7ee82969f56a2e9b4a930b83f8769a5e1ea758 diff --git a/vim/plugin/settings/camelcasemotion.vim b/vim/plugin/settings/camelcasemotion.vim new file mode 100644 index 0000000..2f6784b --- /dev/null +++ b/vim/plugin/settings/camelcasemotion.vim @@ -0,0 +1,7 @@ +map W CamelCaseMotion_w +map B CamelCaseMotion_b +map E CamelCaseMotion_e + +sunmap W +sunmap B +sunmap E \ No newline at end of file diff --git a/vim/plugin/settings/jslint.vim b/vim/plugin/settings/jslint.vim deleted file mode 100644 index 4592457..0000000 --- a/vim/plugin/settings/jslint.vim +++ /dev/null @@ -1 +0,0 @@ -let g:jslint_highlight_color="" diff --git a/vim/plugin/settings/powerline.vim b/vim/plugin/settings/powerline.vim new file mode 100644 index 0000000..1900bad --- /dev/null +++ b/vim/plugin/settings/powerline.vim @@ -0,0 +1,3 @@ +let g:Powerline_symbols='fancy' +let g:Powerline_theme='skwp' +let g:Powerline_colorscheme='skwp' diff --git a/vim/plugin/settings/syntastic.vim b/vim/plugin/settings/syntastic.vim index ace3af3..38b69d3 100644 --- a/vim/plugin/settings/syntastic.vim +++ b/vim/plugin/settings/syntastic.vim @@ -1,8 +1,8 @@ "mark syntax errors with :signs let g:syntastic_enable_signs=1 "automatically jump to the error when saving the file -let g:syntastic_auto_jump=1 +let g:syntastic_auto_jump=0 "show the error list automatically let g:syntastic_auto_loc_list=1 "don't care about warnings -let g:syntastic_quiet_warnings=1 +let g:syntastic_quiet_warnings=0 diff --git a/vim/plugin/settings/yadr-keymap.vim b/vim/plugin/settings/yadr-keymap.vim index cea0a5d..956ff78 100644 --- a/vim/plugin/settings/yadr-keymap.vim +++ b/vim/plugin/settings/yadr-keymap.vim @@ -1,3 +1,6 @@ +" Arpeggio lets us define key-chord combos (simultaneous key presses) +call arpeggio#load() + " ======================================== " General vim sanity improvements " ======================================== @@ -35,6 +38,11 @@ imap _ imap - imap - +" Use the two first fingers on both sides of the keyboard +" simultaneously to go to the beginning or end of line +Arpeggio nnoremap jk $ +Arpeggio nnoremap fd 0 + " Change inside quotes with Cmd-" and Cmd-' nnoremap ci' nnoremap ci" @@ -42,9 +50,6 @@ nnoremap ci" " Add spaces around a symbol with Ctrl-Space nnoremap i a -" Don't have to use Shift to get into command mode, just hit semicolon -nnoremap ; : - "Go to last edit location with ,. nnoremap ,. '. @@ -57,11 +62,6 @@ nnoremap ,. '. " put the cursor right after the quote imap wa -" ================== rails.vim -" -" Open corresponding unittest (or spec), alias for :AV in rails.vim -nmap ,ru :AV - " ==== NERD tree " Cmd-Shift-N for nerd tree nmap :NERDTreeToggle @@ -71,13 +71,14 @@ nmap :NERDTreeToggle nmap ,qc :cclose nmap ,qo :copen -" move up/down quickly by using Ctrl-j, Ctrl-k +" move up/down quickly by using Cmd-j, Cmd-k " which will move us around by functions -nnoremap } -nnoremap { - -autocmd FileType ruby map ]m -autocmd FileType ruby map [m +nnoremap } +nnoremap { +autocmd FileType ruby map ]m +autocmd FileType ruby map [m +autocmd FileType rspec map } +autocmd FileType rspec map { " Open the project tree and expose current file in the nerdtree with Ctrl-\ nnoremap :NERDTreeFind @@ -97,6 +98,9 @@ nnoremap ,f " use ,F to jump to tag in a vertical split nnoremap ,F :let word=expand(""):vsp:wincmd w:exec("tag ". word) +" use ,gf to go to file in a vertical split +nnoremap ,gf :vertical botright wincmd f + "Move back and forth through previous and next buffers "with ,z and ,x @@ -109,14 +113,10 @@ nnoremap ,x :bn " Move between split windows by using the four directions H, L, I, N " (note that I use I and N instead of J and K because J already does " line joins and K is mapped to GitGrep the current word -nnoremap H h -nnoremap L l -nnoremap I k -nnoremap M j - -" Move between tabs with Ctrl-Shift-H and Ctrl-Shift-L -map :tabprevious -map :tabnext +nnoremap h +nnoremap l +nnoremap k +nnoremap j " Zoom in and out of current window with ,, map ,gz o @@ -138,8 +138,9 @@ map :tabn 9 nnoremap vv v nnoremap ss s -"open the taglist (method browser) using ,t -nnoremap ,T :TlistToggle +" Resize vertical windows by hitting plus and minus +nnoremap + + +nnoremap - - " create <%= foo %> erb tags using Ctrl-k in edit mode imap <%= %>3hi @@ -162,7 +163,7 @@ nmap // :nohlsearch " the line we're looking at (it does so by yy-copy, colon " to get to the command mode, C-f to get to history editing " p to paste it, C-c to return to command mode, and CR to execute -nmap ,cc yy:p +nmap ,vc yy:p " Type ,hl to toggle highlighting on/off, and show current value. noremap ,hl :set hlsearch! hlsearch? @@ -209,9 +210,9 @@ nmap ,Bc :ClearBookmarks abbr pry! require 'pry'; binding.pry " ============================ -" vim-rspec +" vim-ruby-conque " ============================ " Cmd-Shift-R for RSpec -nmap :RunSpec +nmap :call RunRspecCurrentFileConque() " Cmd-Shift-L for RSpec Current Line -nmap :RunSpecLine +nmap :call RunRspecCurrentLineConque() diff --git a/vim/snippets b/vim/snippets deleted file mode 160000 index 15cb6bf..0000000 --- a/vim/snippets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 15cb6bf4fad5b11f83d2ddb7186aadc0604329c1 diff --git a/vimrc b/vimrc index fe53626..2114299 100644 --- a/vimrc +++ b/vimrc @@ -24,7 +24,7 @@ set history=1000 "Store lots of :cmdline history set showcmd "Show incomplete cmds down the bottom set showmode "Show current mode down the bottom set gcr=a:blinkon0 "Disable cursor blink - +set visualbell "No sounds set autoread "Reload files changed outside vim " This makes vim act like all other editors, buffers can @@ -85,6 +85,14 @@ set wildmode=list:longest set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing set wildignore+=*vim/backups* +set wildignore+=*sass-cache* +set wildignore+=*DS_Store* +set wildignore+=*vendor/rails/** +set wildignore+=*vendor/cache/** +set wildignore+=*.gem +set wildignore+=*log/** +set wildignore+=*tmp/** +set wildignore+=*.png,*.jpg,*.gif " @@ -97,3 +105,7 @@ set sidescroll=1 for f in split(glob('~/.vim/plugin/settings/*.vim'), '\n') exe 'source' f endfor + +if filereadable(expand("~/.vimrc.after")) + source ~/.vimrc.after +endif diff --git a/zsh/color-man-pages.zsh b/zsh/color-man-pages.zsh new file mode 100644 index 0000000..7d2de22 --- /dev/null +++ b/zsh/color-man-pages.zsh @@ -0,0 +1,10 @@ +# Less Colors for Man Pages +# http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/ +export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking +export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold +export LESS_TERMCAP_me=$'\E[0m' # end mode +export LESS_TERMCAP_se=$'\E[0m' # end standout-mode +export LESS_TERMCAP_so=$'\E[38;33;246m' # begin standout-mode - info box +export LESS_TERMCAP_ue=$'\E[0m' # end underline +export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline + diff --git a/zsh/fasd.zsh b/zsh/fasd.zsh new file mode 100644 index 0000000..2ff4808 --- /dev/null +++ b/zsh/fasd.zsh @@ -0,0 +1,13 @@ +# Initialize fasd (https://github.com/clvv/fasd) +eval "$(fasd --init posix-alias zsh-hook)" + +# aliases + +# jump to recently used items +alias a='fasd -a' # any +alias s='fasd -s' # show / search / select +alias d='fasd -d' # directory +alias f='fasd -f' # file +alias z='fasd_cd -d' # cd, same functionality as j in autojump +alias v='f -e vim' # quick opening files with vim + diff --git a/zsh/git.zsh b/zsh/git.zsh new file mode 100644 index 0000000..1733236 --- /dev/null +++ b/zsh/git.zsh @@ -0,0 +1,6 @@ +# Speed up git completion +# http://talkings.org/post/5236392664/zsh-and-slow-git-completion +__git_files () { + _wanted files expl 'local files' _files +} + diff --git a/zsh/path.zsh b/zsh/path.zsh new file mode 100644 index 0000000..c6706f2 --- /dev/null +++ b/zsh/path.zsh @@ -0,0 +1,3 @@ +# path +export PATH=/usr/local/bin:$PATH + diff --git a/zsh/zsh-aliases.zsh b/zsh/zsh-aliases.zsh index 34c1c1f..5fcd1cf 100644 --- a/zsh/zsh-aliases.zsh +++ b/zsh/zsh-aliases.zsh @@ -15,3 +15,4 @@ alias -g G='| grep' # now you can do: ls foo G something # usage: fn foo # to find all files containing 'foo' in the name function fn() { ls **/*$1* } + diff --git a/zsh/zshrc b/zsh/zshrc index 8510d66..23629bd 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -17,8 +17,9 @@ if [[ -d $HOME/.oh-my-zsh ]]; then # Set name of the theme to load. ZSH_THEME="robbyrussell" - # Default plugins. - plugins=(git ruby) + # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) + # Example format: plugins=(rails git textmate ruby lighthouse) + plugins=(vi-mode git rvm ruby rails autojump bundler gem gnu-utils heroku rake redis-cli zsh-syntax-highlighting history-substring-search) # source every zsh file in user's custom/zsh/before. This is useful for setting theme and plugins. if [[ -d $yadr/custom/zsh/ ]]; then @@ -63,10 +64,3 @@ if [[ -a ~/.secrets ]] then source ~/.secrets fi -# Speed up git completion -# http://talkings.org/post/5236392664/zsh-and-slow-git-completion -__git_files () { - _wanted files expl 'local files' _files -} - -export PATH=/usr/local/bin:$PATH diff --git a/zsh/zvm.zsh b/zsh/zvm.zsh new file mode 100644 index 0000000..674184e --- /dev/null +++ b/zsh/zvm.zsh @@ -0,0 +1,4 @@ +# Use zmv, which is amazing +autoload -U zmv +alias zmv="noglob zmv -W" +