merge master branch.

This commit is contained in:
Kyle West 2012-03-21 15:33:34 -04:00
commit f2529aca6e
73 changed files with 800 additions and 133 deletions

58
.gitmodules vendored
View File

@ -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

View File

@ -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 <C-\>`) 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

595
bin/fasd Executable file
View File

@ -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 <<EOS
{ if compctl; then # zsh
eval "\$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \
zsh-wcomp zsh-wcomp-install)"
elif complete; then # bash
eval "\$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)"
else # posix shell
eval "\$(fasd --init posix-alias posix-hook)"
fi
} >> "$_FASD_SINK" 2>&1
EOS
;;
posix-alias) cat <<EOS
alias a='fasd -a'
alias s='fasd -si'
alias sd='fasd -sid'
alias sf='fasd -sif'
alias d='fasd -d'
alias f='fasd -f'
# function to execute built-in cd
fasd_cd() { [ \$# -gt 1 ] && cd "\$(fasd -e echo "\$@")" || fasd "\$@"; }
alias z='fasd_cd -d'
EOS
;;
zsh-hook) cat <<EOS
# add zsh hook
_fasd_preexec() {
{ eval "fasd --proc \$(fasd --sanitize \$3)"; } >> "$_FASD_SINK" 2>&1
}
autoload -U add-zsh-hook
add-zsh-hook preexec _fasd_preexec
EOS
;;
bash-hook) cat <<EOS
# add bash hook
echo \$PROMPT_COMMAND | grep -v -q "fasd --proc" && \
PROMPT_COMMAND='eval "fasd --proc \$(fasd --sanitize \$(history 1 | \
sed -e "s/^[ ]*[0-9]*[ ]*//"))" >> "$_FASD_SINK" 2>&1;'"\$PROMPT_COMMAND"
EOS
;;
posix-hook) cat <<EOS
_fasd_ps1_func() {
{ eval "fasd --proc \$(fasd --sanitize \
\$(fc -nl -0 | sed -n '\$s/\s*\(.*\)/\1/p'))"; } >> "$_FASD_SINK" 2>&1
}
echo "\$PS1" | grep -v -q "_fasd_ps1_func" && \
export PS1="\\\$(_fasd_ps1_func)\$PS1"
EOS
;;
zsh-ccomp) cat <<EOS
# zsh command mode completion
_fasd_zsh_cmd_complete() {
local compl
read -c compl
compstate[insert]=menu # no expand
reply=(\${(f)"\$(fasd --complete "\$compl")"})
}
EOS
;;
zsh-wcomp) cat <<EOS
# zsh word mode completion
_fasd_zsh_word_complete() {
[ "\$2" ] && local _fasd_cur="\$2"
[ -z "\$_fasd_cur" ] && local _fasd_cur="\${words[CURRENT]}"
local fnd="\${_fasd_cur//,/ }"
local typ=\${1:-e}
fasd --query \$typ \$fnd | sort -nr | sed 's/^[0-9.]*[ ]*//' | \
while read line; do
compadd -U -V fasd "\$line"
done
compstate[insert]=menu # no expand
}
_fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; }
_fasd_zsh_word_complete_d() { _fasd_zsh_word_complete d ; }
_fasd_zsh_word_complete_trigger() {
local _fasd_cur="\${words[CURRENT]}"
eval \$(fasd --word-complete-trigger _fasd_zsh_word_complete \$_fasd_cur)
}
# define zle widgets
zle -C fasd-complete 'menu-select' _fasd_zsh_word_complete
zle -C fasd-complete-f 'menu-select' _fasd_zsh_word_complete_f
zle -C fasd-complete-d 'menu-select' _fasd_zsh_word_complete_d
EOS
;;
zsh-ccomp-install) cat <<EOS
# enbale command mode completion
compctl -U -K _fasd_zsh_cmd_complete -V fasd -x 'C[-1,-*e],s[-]n[1,e]' -c - \
'c[-1,-A][-1,-D]' -f -- fasd fasd_cd
EOS
;;
zsh-wcomp-install) cat <<EOS
# enable word mode completion
zstyle ':completion:*' completer _complete _ignored \
_fasd_zsh_word_complete_trigger
EOS
;;
bash-ccomp) cat <<EOS
# bash command mode completion
_fasd_bash_cmd_complete() {
# complete command after "-e"
local cur=\${COMP_WORDS[COMP_CWORD]}
[[ \${COMP_WORDS[COMP_CWORD-1]} == -*e ]] && \
COMPREPLY=( \$(compgen -A command \$cur) ) && return
# complete using default readline complete after "-A" or "-D"
case \${COMP_WORDS[COMP_CWORD-1]} in
-A|-D) COMPREPLY=( \$(compgen -o default \$cur) ) && return
esac
# get completion results using expanded aliases
local RESULT=\$( fasd -q --complete "\$(alias -p \$COMP_WORDS \
2>> "$_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 <<EOS
# bash word mode completion
_fasd_bash_word_complete() {
[ "\$2" ] && local _fasd_cur="\$2"
[ "\$_fasd_cur" ] || local _fasd_cur="\${COMP_WORDS[COMP_CWORD]}"
local typ=\${1:-e}
local fnd="\${_fasd_cur//,/ }"
local RESULT=\$(fasd -q --query \$typ \$fnd | sed 's/^[0-9.]*[ ]*//')
IFS=\$'\n' COMPREPLY=( \$RESULT )
} >> "$_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 <<EOS
# enable bash command mode completion
_fasd_bash_hook_cmd_complete fasd a s d f sd sf z
EOS
;;
bash-wcomp-install) cat <<EOS
_FASD_BASH_COMPLETE_P="\$(complete -p)"
for cmd in \$(complete -p | awk '{print \$NF}' | tr '\n' ' '); do
complete -o default -o bashdefault -F _fasd_bash_word_complete_wrap \$cmd
done
# enable word mode completion as default completion
complete -o default -o bashdefault -D -F _fasd_bash_word_complete_trigger \
>> "$_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 <cmd> set command to execute on the result file
-b <name> only use <name> backend
-b <name> add additional backend <name>
-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

Binary file not shown.

BIN
fonts/Menlo-Powerline.otf Normal file

Binary file not shown.

BIN
fonts/mensch-Powerline.otf Normal file

Binary file not shown.

View File

@ -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\"

@ -1 +1 @@
Subproject commit 9896c3a62514ca0a2902acf37398ddc36fbcaa8f
Subproject commit d1b5511a31a1f8f317b9ba0c95b0bc05579bc3e4

@ -0,0 +1 @@
Subproject commit a2676b4225b8a370b9e7046c5fc2f5ad1155e590

@ -1 +1 @@
Subproject commit b2dc8412a431bd22305510770f7eeb8f0af59a80
Subproject commit 1ee725015543c00033f16eb5d3076feb186f9f15

@ -0,0 +1 @@
Subproject commit b61e9fca473963a6b36798b830f5d12f820b7adc

@ -0,0 +1 @@
Subproject commit f2ea655d7be8dcebea68c082f694f109461c2376

@ -1 +1 @@
Subproject commit 525ba3857ab4628091f67a9b14638b3f9fa77568
Subproject commit 9e389d6159515d2eaf617b658bf38cb0a59c144e

@ -1 +1 @@
Subproject commit 95a809c05aebe0404b1619a5a21124133b435976
Subproject commit caf31313943d2078b925adaf2c9625dce2482038

@ -1 +1 @@
Subproject commit 5a06bf807d439f71c47c0f640fefbd46ffe10e18
Subproject commit 6447a4debc3263a0fa99feeab5548edf27ecf045

@ -1 +0,0 @@
Subproject commit 11d9fb0e38a3894f23b9de69aa3e3990a685d73c

@ -0,0 +1 @@
Subproject commit f1e851048fefca4be5a4913596a9288f6ccdf6d8

@ -0,0 +1 @@
Subproject commit b347b12dcfd341d3f038d2486ba714c5ac437402

@ -1 +1 @@
Subproject commit 1906606b0e4d7d74764c1b0c1a3e24ed29338492
Subproject commit 68d7b0bcbaff7846265c8e9f431976634382db0c

@ -1 +1 @@
Subproject commit 8d27da40c918c5fb6695c52b6fe16f27326e5c94
Subproject commit 6ee677e9788748f6258a7a832f360be775022a73

@ -1 +0,0 @@
Subproject commit f4999532c67f7cf5a5c13346aaf22ce818e35994

@ -1 +1 @@
Subproject commit c029aec736ade7143bfe9b009f344af4bdf49c1d
Subproject commit 9d4a97714159255a80193652675c0649bdabf89a

@ -0,0 +1 @@
Subproject commit c0a4929c940e4fb32f8aaa70440da113c7064467

@ -1 +1 @@
Subproject commit 3f6f6b0ba63d681434a728ce7cfdd3ed0bcf9ede
Subproject commit 1b738334952a7944d3591253dcc3576b1ccb2c9d

@ -1 +1 @@
Subproject commit 2591fefbc78ee7448da8da4a0537a531f710c743
Subproject commit e63094684bf6c6a99485e76b786999443d346d94

@ -1 +1 @@
Subproject commit 99542d295b54dab166707eeeba754bd7f8592b8e
Subproject commit a82a75c134a2389a6753f06ff26286be750a8beb

@ -1 +0,0 @@
Subproject commit a291c1fbd8eec4c499f7d780055c2d3b8b1a0d96

@ -1 +1 @@
Subproject commit 52fe2b7c3a6c74f1fc8cb311e0bcc6fe8c09fddb
Subproject commit f6a02c9e24a1731b06db492dd8c22b0ce2474888

@ -1 +1 @@
Subproject commit dff81c9ec21fa96bb906db4ef355021b9e7cb394
Subproject commit 6986833aecec987faae46079ba0a320dc113214e

@ -1 +1 @@
Subproject commit a386d4138417499f63b1dba0dc6941d3911e8113
Subproject commit 01524e272fc6421a0ac6e2f21880bd6d1d5c9e28

@ -1 +0,0 @@
Subproject commit a8f1bc55dad9a734837ca456dac8879e14b3a245

@ -1 +1 @@
Subproject commit f1c115ce5dba08968a0b4693aa601b0eb5bd4609
Subproject commit cf6f4d46614ffd968b80f876b618ee77c5ccc8b3

@ -1 +1 @@
Subproject commit 39b8298390a9171c796df077ad3c5f3c0f111c56
Subproject commit 0b34aea202daee0a3e85ce948bc9c9f8082f1899

@ -1 +0,0 @@
Subproject commit da35739921a258ecce991040f9b1537897a8ff57

@ -1 +1 @@
Subproject commit 4bd0def6fb642e428a887ef83f11a8a267209004
Subproject commit 678bb2816874d92bca4eea46e0f5f40a15ddab68

@ -1 +1 @@
Subproject commit fe5b8989afa1859751acc34d9c0c6f8ccef44f6a
Subproject commit 9f1cdfd92c7d3c8147ef9c4650d9de210d3afaa2

@ -1 +1 @@
Subproject commit 6b59f0db14e76d14ce979648f7592abc7d7e0cb4
Subproject commit 0cd4a566bda2307cef9dd641b2f974e3e5b17bfb

@ -1 +1 @@
Subproject commit 12b6f67aeb892519385529b2b5cdda55cc428d9d
Subproject commit dea060dafe83ec111d8601d455136a36ec9bc257

@ -1 +1 @@
Subproject commit b2dbf4e0a7aa9cbb91d19cfec68901ef4e6906a6
Subproject commit 16c68cf20d7c0fa654025cf01da528db933c40b8

@ -0,0 +1 @@
Subproject commit 00890b58ca8821c9eda2f25a993a8f09a1ae0465

@ -0,0 +1 @@
Subproject commit fa8770161f9dafe40ae08d4a8485f2a2452ff200

@ -1 +0,0 @@
Subproject commit 9b886ecef14e481a5a367fca6c047adddba92b05

@ -1 +1 @@
Subproject commit cd3273e1a5e42a27167fe86f8ae93507f6e2e2b7
Subproject commit 48b737ef422482246dd0187cd8a8751d528da084

@ -1 +1 @@
Subproject commit 550cc0bbed51fabf9d8d08ebe9cfc296efbf5d88
Subproject commit 87adab024258071cd4bc6055d544605505a160e1

@ -0,0 +1 @@
Subproject commit 4bfa2df5cfe9a139d65ab9a3ca1609623e968b90

@ -1 +1 @@
Subproject commit 9a9d1994eaeae3f2f23da6bb71111782ab70276c
Subproject commit 74306aa18c03ee2fdb044609e6f0bc866872711d

@ -1 +1 @@
Subproject commit fc0c98f5c0533fe14da20516f901b933324130f3
Subproject commit 0949a2e639187fa1907391e8ee178ca3549c793a

@ -1 +1 @@
Subproject commit d058250916346f9957e13e1a6a268d705011a993
Subproject commit a05272481b28fa69c5d43f81d227b0ad92b26a11

@ -1 +1 @@
Subproject commit a995d4aabb794bd60028537ecb41ca7f2c738e65
Subproject commit 3490c63d6827eb1c5fa31e51f090a7d6ca4bc563

@ -1 +1 @@
Subproject commit ab64b4ddd0c184a528780b498a0b0a5b40248f7c
Subproject commit c9fb89dd6efdeedb95c411ec78b3a9493602d33d

@ -1 +1 @@
Subproject commit e45164cbba5beee4bd65096dad31f31124a2cc18
Subproject commit 18622f4b32673c397119f0eef9105271b58c3849

@ -1 +1 @@
Subproject commit cdffdd43816ddaeee858ae42da3ab6ddcfa25d19
Subproject commit 2914f11f7494adefaaec1d8c817a301c464c94b2

@ -1 +1 @@
Subproject commit 4eb2cdfccc016889acfa3b5d63e8f390a87863cf
Subproject commit 489a1e8c676ad47dd358dbf883bfaf492148d38b

@ -1 +1 @@
Subproject commit 8505f2eb3d7ff2bd0810f6e06cb103d783c05f5a
Subproject commit e8013727a008a68664a789fe0d2b5c2ab2ecf657

@ -1 +1 @@
Subproject commit f265e6b09f943d79582244e487a4fa80a9584aa1
Subproject commit 8e4076a6e54aa4679e664fa5eaa2c5ea002e2fcb

@ -1 +1 @@
Subproject commit 9cc2e4d77e52ff0237126b51d265e18c3e934da7
Subproject commit ef0a37e8da77cd6c40d97a8e7a60c33ddc39d6ba

@ -0,0 +1 @@
Subproject commit 8db17bdee3f42bd71839ead2a84b2ee1916e45c2

@ -1 +0,0 @@
Subproject commit 53041fbc45398a9af631a20657e109707a455339

@ -1 +1 @@
Subproject commit 9f9031f13f549c901fdedec384f865d06fb1f82c
Subproject commit bb7ee82969f56a2e9b4a930b83f8769a5e1ea758

View File

@ -0,0 +1,7 @@
map W <Plug>CamelCaseMotion_w
map B <Plug>CamelCaseMotion_b
map E <Plug>CamelCaseMotion_e
sunmap W
sunmap B
sunmap E

View File

@ -1 +0,0 @@
let g:jslint_highlight_color=""

View File

@ -0,0 +1,3 @@
let g:Powerline_symbols='fancy'
let g:Powerline_theme='skwp'
let g:Powerline_colorscheme='skwp'

View File

@ -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

View File

@ -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 <silent> <D-d> _
imap <silent> <D-K> -
imap <silent> <D-D> -
" 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 <D-'> ci'
nnoremap <D-"> ci"
@ -42,9 +50,6 @@ nnoremap <D-"> ci"
" Add spaces around a symbol with Ctrl-Space
nnoremap <C-Space> i <esc><right>a <esc>
" 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 <C-a> <esc>wa
" ================== rails.vim
"
" Open corresponding unittest (or spec), alias for :AV in rails.vim
nmap ,ru :AV<CR>
" ==== NERD tree
" Cmd-Shift-N for nerd tree
nmap <D-N> :NERDTreeToggle<CR>
@ -71,13 +71,14 @@ nmap <D-N> :NERDTreeToggle<CR>
nmap <silent> ,qc :cclose<CR>
nmap <silent> ,qo :copen<CR>
" 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 <silent> <C-j> }
nnoremap <silent> <C-k> {
autocmd FileType ruby map <buffer> <C-j> ]m
autocmd FileType ruby map <buffer> <C-k> [m
nnoremap <silent> <D-j> }
nnoremap <silent> <D-k> {
autocmd FileType ruby map <buffer> <D-j> ]m
autocmd FileType ruby map <buffer> <D-k> [m
autocmd FileType rspec map <buffer> <D-j> }
autocmd FileType rspec map <buffer> <D-k> {
" Open the project tree and expose current file in the nerdtree with Ctrl-\
nnoremap <silent> <C-\> :NERDTreeFind<CR>
@ -97,6 +98,9 @@ nnoremap <silent> ,f <C-]>
" use ,F to jump to tag in a vertical split
nnoremap <silent> ,F :let word=expand("<cword>")<CR>:vsp<CR>:wincmd w<cr>:exec("tag ". word)<cr>
" use ,gf to go to file in a vertical split
nnoremap <silent> ,gf :vertical botright wincmd f<CR>
"Move back and forth through previous and next buffers
"with ,z and ,x
@ -109,14 +113,10 @@ nnoremap <silent> ,x :bn<CR>
" 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 <silent> H <C-w>h
nnoremap <silent> L <C-w>l
nnoremap <silent> I <C-w>k
nnoremap <silent> M <C-w>j
" Move between tabs with Ctrl-Shift-H and Ctrl-Shift-L
map <silent> <C-H> :tabprevious<cr>
map <silent> <C-L> :tabnext<cr>
nnoremap <silent> <C-h> <C-w>h
nnoremap <silent> <C-l> <C-w>l
nnoremap <silent> <C-k> <C-w>k
nnoremap <silent> <C-j> <C-w>j
" Zoom in and out of current window with ,,
map <silent> ,gz <C-w>o
@ -138,8 +138,9 @@ map <silent> <D-9> :tabn 9<cr>
nnoremap <silent> vv <C-w>v
nnoremap <silent> ss <C-w>s
"open the taglist (method browser) using ,t
nnoremap <silent> ,T :TlistToggle<CR>
" Resize vertical windows by hitting plus and minus
nnoremap <silent> + <C-w>+
nnoremap <silent> - <C-w>-
" create <%= foo %> erb tags using Ctrl-k in edit mode
imap <silent> <C-K> <%= %><Esc>3hi
@ -162,7 +163,7 @@ nmap <silent> // :nohlsearch<CR>
" 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 <silent> ,cc yy:<C-f>p<C-c><CR>
nmap <silent> ,vc yy:<C-f>p<C-c><CR>
" Type ,hl to toggle highlighting on/off, and show current value.
noremap ,hl :set hlsearch! hlsearch?<CR>
@ -209,9 +210,9 @@ nmap ,Bc :ClearBookmarks<cr>
abbr pry! require 'pry'; binding.pry
" ============================
" vim-rspec
" vim-ruby-conque
" ============================
" Cmd-Shift-R for RSpec
nmap <D-R> :RunSpec<CR>
nmap <silent> <D-R> :call RunRspecCurrentFileConque()<CR>
" Cmd-Shift-L for RSpec Current Line
nmap <D-L> :RunSpecLine<CR>
nmap <silent> <D-L> :call RunRspecCurrentLineConque()<CR>

@ -1 +0,0 @@
Subproject commit 15cb6bf4fad5b11f83d2ddb7186aadc0604329c1

14
vimrc
View File

@ -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

10
zsh/color-man-pages.zsh Normal file
View File

@ -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

13
zsh/fasd.zsh Normal file
View File

@ -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

6
zsh/git.zsh Normal file
View File

@ -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
}

3
zsh/path.zsh Normal file
View File

@ -0,0 +1,3 @@
# path
export PATH=/usr/local/bin:$PATH

View File

@ -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* }

View File

@ -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

4
zsh/zvm.zsh Normal file
View File

@ -0,0 +1,4 @@
# Use zmv, which is amazing
autoload -U zmv
alias zmv="noglob zmv -W"