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 path = vim/bundle/vim-scripts-AnsiEsc
url = https://github.com/vim-scripts/AnsiEsc.vim.git url = https://github.com/vim-scripts/AnsiEsc.vim.git
ignore=dirty 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"] [submodule "vim/bundle/skwp-vim-ruby-conque"]
path = vim/bundle/skwp-vim-ruby-conque path = vim/bundle/skwp-vim-ruby-conque
url = https://github.com/skwp/vim-ruby-conque url = https://github.com/skwp/vim-ruby-conque
@ -74,10 +70,6 @@
path = vim/bundle/tpope-vim-repeat path = vim/bundle/tpope-vim-repeat
url = https://github.com/tpope/vim-repeat.git url = https://github.com/tpope/vim-repeat.git
ignore=dirty 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"] [submodule "vim/bundle/tpope-vim-surround"]
path = vim/bundle/tpope-vim-surround path = vim/bundle/tpope-vim-surround
url = https://github.com/tpope/vim-surround.git url = https://github.com/tpope/vim-surround.git
@ -118,10 +110,6 @@
path = vim/bundle/skwp-vim-colors-solarized path = vim/bundle/skwp-vim-colors-solarized
url = https://github.com/skwp/vim-colors-solarized url = https://github.com/skwp/vim-colors-solarized
ignore=dirty 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"] [submodule "vim/bundle/tpope-vim-pathogen"]
path = vim/bundle/tpope-vim-pathogen path = vim/bundle/tpope-vim-pathogen
url = https://github.com/tpope/vim-pathogen url = https://github.com/tpope/vim-pathogen
@ -134,14 +122,6 @@
path = vim/bundle/tpope-vim-fugitive path = vim/bundle/tpope-vim-fugitive
url = https://github.com/tpope/vim-fugitive url = https://github.com/tpope/vim-fugitive
ignore=dirty 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"] [submodule "vim/bundle/skwp-vim-git-grep-rails-partial"]
path = 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 url = https://github.com/skwp/vim-git-grep-rails-partial
@ -234,10 +214,6 @@
path = vim/bundle/bootleq-vim-textobj-rubysymbol path = vim/bundle/bootleq-vim-textobj-rubysymbol
url = https://github.com/bootleq/vim-textobj-rubysymbol url = https://github.com/bootleq/vim-textobj-rubysymbol
ignore=dirty 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"] [submodule "vim/bundle/nathanaelkane-vim-indent-guides"]
path = vim/bundle/nathanaelkane-vim-indent-guides path = vim/bundle/nathanaelkane-vim-indent-guides
url = https://github.com/nathanaelkane/vim-indent-guides url = https://github.com/nathanaelkane/vim-indent-guides
@ -250,10 +226,6 @@
path = vim/bundle/tpope-vim-haml path = vim/bundle/tpope-vim-haml
url = https://github.com/tpope/vim-haml url = https://github.com/tpope/vim-haml
ignore=dirty 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"] [submodule "vim/bundle/claco-jasmine"]
path = vim/bundle/claco-jasmine path = vim/bundle/claco-jasmine
url = https://github.com/claco/jasmine.vim url = https://github.com/claco/jasmine.vim
@ -285,3 +257,33 @@
[submodule "vim/bundle/joestelmach-javaScriptLint"] [submodule "vim/bundle/joestelmach-javaScriptLint"]
path = vim/bundle/joestelmach-javaScriptLint path = vim/bundle/joestelmach-javaScriptLint
url = https://github.com/joestelmach/javaScriptLint.vim 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 # Alpha Release Please Report Bugs
git clone https://github.com/skwp/dotfiles ~/.yadr 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. * 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. * 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. * 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 * 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. * More than just vim plugins - great shell aliases, osx, and irb/pry tweaks to make you more productive.
## Screenshot ## Screenshot
![screenshot](http://i.imgur.com/lEFlF.png) ![screenshot](http://i.imgur.com/afzuR.png)
## Before you start ## 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! For the love of all that is holy, stop abusing your hands!
Remap caps-lock to escape: http://pqrs.org/macosx/keyremap4macbook/extra.html 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 ## Dependencies
YADR is opinionated. To get the most out of using it, you should install YADR is opinionated. To get the most out of using it, you should install
all the software it depends on. 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](http://mxcl.github.com/homebrew/)
Homebrew is _the missing package manager for OSX_. To install: 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 remote add skwp https://github.com/skwp/oh-my-zsh.git
git pull skwp master 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](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: 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 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. Note: YADR will not destroy any of your files unless you tell it to.
@ -219,7 +237,6 @@ your `~/.secrets` file which is automatically referenced by the provided zshrc:
* Slightly imrpoved colors for diff * 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 * `git unstage` (remove from index) and `git uncommit` (revert to the time prior to the last commit - dangerous if already pushed) aliases
## RubyGems ## RubyGems
A .gemrc is included. Never again type `gem install whatever --no-ri --no-rdoc`. `--no-ri --no-rdoc` is done by default. 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) * `,z` - go to previous buffer (:bp)
* `,x` - go to next buffer (:bn) * `,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-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) * `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 #### 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) * `,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 #### 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` - instantly Find definition of class (must have exuberant ctags installed)
* `,F` - same as ,f but in a vertical split * `,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 under the cursor and show results in quickfix window
* `,K` - GitGrep the current word up to next exclamation point (useful for ruby foo! methods) * `,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) * `Cmd-*` - highlight all occurrences of current word (similar to regular `*` except doesn't move)
* `,hl` - toggle search highlight on and off * `,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 * `,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 * `,gcp` - GitGrep Current Partial to find references to the current view partial
* `//` - clear the search * `//` - 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 * `,.` 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-'` and `Cmd-"` to change content inside quotes
* Cmd-Space to autocomplete. Tab for snipmate snippets. * 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 #### Tab Navigation
@ -322,8 +340,9 @@ files contain key mappings as well (TODO: probably will move them out to skwp-ke
#### Window Navigation #### 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. * `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 #### 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 * `,ig` - toggle visual indentation guides
* `,cf` - Copy Filename of current file into system (not vi) paste buffer * `,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) * `,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 * `,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 * `,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 * `,he` - Html Escape
* `,hu` - Html Unescape * `,hu` - Html Unescape
* `Cmd-Shift-A` - align things (type a character/expression to align by, works in visual mode or by itself) * `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 #### 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) * TagBar - hit ,T to see a list of methods in a class (uses ctags)
* CtrlP - Ctrl-p or ,t to find a file * 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 * 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 #### 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 * 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) * 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) * 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 #### 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 * 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 * 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 * 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-ruby-conque - helpers to run ruby,rspec,rake within ConqueTerm
* 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-markdown-preview - :Mm to view your README.md as html * vim-markdown-preview - :Mm to view your README.md as html
* html-escape - ,he and ,hu to escape and unescape 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 * 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 * 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" * 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 * 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 #### 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 * IndexedSearch - when you do searches will show you "Match 2 of 4" in the status line
* delimitMate - automatically closes quotes * delimitMate - automatically closes quotes
* syntastic - automatic syntax checking when you save the file * 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. Please explore these people's work.
### Coming Soon
* Automatic installation setup
### Contributors ### Contributors
* Initial Version: @skwp * 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 last = diff HEAD^ # diff last committed change
# log # log
log = log --decorate --graph --date=short l = log --graph --date=short
l = log
changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status
short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\"
changelog = log --pretty=format:\" * %s\" 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 "mark syntax errors with :signs
let g:syntastic_enable_signs=1 let g:syntastic_enable_signs=1
"automatically jump to the error when saving the file "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 "show the error list automatically
let g:syntastic_auto_loc_list=1 let g:syntastic_auto_loc_list=1
"don't care about warnings "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 " General vim sanity improvements
" ======================================== " ========================================
@ -35,6 +38,11 @@ imap <silent> <D-d> _
imap <silent> <D-K> - imap <silent> <D-K> -
imap <silent> <D-D> - 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-' " Change inside quotes with Cmd-" and Cmd-'
nnoremap <D-'> ci' nnoremap <D-'> ci'
nnoremap <D-"> ci" nnoremap <D-"> ci"
@ -42,9 +50,6 @@ nnoremap <D-"> ci"
" Add spaces around a symbol with Ctrl-Space " Add spaces around a symbol with Ctrl-Space
nnoremap <C-Space> i <esc><right>a <esc> 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 ,. "Go to last edit location with ,.
nnoremap ,. '. nnoremap ,. '.
@ -57,11 +62,6 @@ nnoremap ,. '.
" put the cursor right after the quote " put the cursor right after the quote
imap <C-a> <esc>wa imap <C-a> <esc>wa
" ================== rails.vim
"
" Open corresponding unittest (or spec), alias for :AV in rails.vim
nmap ,ru :AV<CR>
" ==== NERD tree " ==== NERD tree
" Cmd-Shift-N for nerd tree " Cmd-Shift-N for nerd tree
nmap <D-N> :NERDTreeToggle<CR> nmap <D-N> :NERDTreeToggle<CR>
@ -71,13 +71,14 @@ nmap <D-N> :NERDTreeToggle<CR>
nmap <silent> ,qc :cclose<CR> nmap <silent> ,qc :cclose<CR>
nmap <silent> ,qo :copen<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 " which will move us around by functions
nnoremap <silent> <C-j> } nnoremap <silent> <D-j> }
nnoremap <silent> <C-k> { nnoremap <silent> <D-k> {
autocmd FileType ruby map <buffer> <D-j> ]m
autocmd FileType ruby map <buffer> <C-j> ]m autocmd FileType ruby map <buffer> <D-k> [m
autocmd FileType ruby map <buffer> <C-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-\ " Open the project tree and expose current file in the nerdtree with Ctrl-\
nnoremap <silent> <C-\> :NERDTreeFind<CR> nnoremap <silent> <C-\> :NERDTreeFind<CR>
@ -97,6 +98,9 @@ nnoremap <silent> ,f <C-]>
" use ,F to jump to tag in a vertical split " 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> 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 "Move back and forth through previous and next buffers
"with ,z and ,x "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 " 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 " (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 " line joins and K is mapped to GitGrep the current word
nnoremap <silent> H <C-w>h nnoremap <silent> <C-h> <C-w>h
nnoremap <silent> L <C-w>l nnoremap <silent> <C-l> <C-w>l
nnoremap <silent> I <C-w>k nnoremap <silent> <C-k> <C-w>k
nnoremap <silent> M <C-w>j nnoremap <silent> <C-j> <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>
" Zoom in and out of current window with ,, " Zoom in and out of current window with ,,
map <silent> ,gz <C-w>o 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> vv <C-w>v
nnoremap <silent> ss <C-w>s nnoremap <silent> ss <C-w>s
"open the taglist (method browser) using ,t " Resize vertical windows by hitting plus and minus
nnoremap <silent> ,T :TlistToggle<CR> nnoremap <silent> + <C-w>+
nnoremap <silent> - <C-w>-
" create <%= foo %> erb tags using Ctrl-k in edit mode " create <%= foo %> erb tags using Ctrl-k in edit mode
imap <silent> <C-K> <%= %><Esc>3hi 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 " 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 " 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 " 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. " Type ,hl to toggle highlighting on/off, and show current value.
noremap ,hl :set hlsearch! hlsearch?<CR> noremap ,hl :set hlsearch! hlsearch?<CR>
@ -209,9 +210,9 @@ nmap ,Bc :ClearBookmarks<cr>
abbr pry! require 'pry'; binding.pry abbr pry! require 'pry'; binding.pry
" ============================ " ============================
" vim-rspec " vim-ruby-conque
" ============================ " ============================
" Cmd-Shift-R for RSpec " Cmd-Shift-R for RSpec
nmap <D-R> :RunSpec<CR> nmap <silent> <D-R> :call RunRspecCurrentFileConque()<CR>
" Cmd-Shift-L for RSpec Current Line " 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 showcmd "Show incomplete cmds down the bottom
set showmode "Show current mode down the bottom set showmode "Show current mode down the bottom
set gcr=a:blinkon0 "Disable cursor blink set gcr=a:blinkon0 "Disable cursor blink
set visualbell "No sounds
set autoread "Reload files changed outside vim set autoread "Reload files changed outside vim
" This makes vim act like all other editors, buffers can " 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 wildmenu "enable ctrl-n and ctrl-p to scroll thru matches
set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing
set wildignore+=*vim/backups* 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') for f in split(glob('~/.vim/plugin/settings/*.vim'), '\n')
exe 'source' f exe 'source' f
endfor 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 # usage: fn foo
# to find all files containing 'foo' in the name # to find all files containing 'foo' in the name
function fn() { ls **/*$1* } function fn() { ls **/*$1* }

View File

@ -17,8 +17,9 @@ if [[ -d $HOME/.oh-my-zsh ]]; then
# Set name of the theme to load. # Set name of the theme to load.
ZSH_THEME="robbyrussell" ZSH_THEME="robbyrussell"
# Default plugins. # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
plugins=(git ruby) # 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. # source every zsh file in user's custom/zsh/before. This is useful for setting theme and plugins.
if [[ -d $yadr/custom/zsh/ ]]; then if [[ -d $yadr/custom/zsh/ ]]; then
@ -63,10 +64,3 @@ if [[ -a ~/.secrets ]] then
source ~/.secrets source ~/.secrets
fi 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"