Add iterm settings, tweak bootstrap, bump eamcs pointer.
Fix web_start. Add remote_clipboard server stuff. Bump .emacs.d pointer and add remote_os_copy alias. Way better get_cols Made git sui git suir move to same sha as yelp branch for .emacs.d Bump emacs pointer. simplified default code for remote_clipboard. Remove unused functions from .functions. Added things from yelp branch. yelpify Added field separator to get_cols. Lots of refactoring. Added .lib directory. Moved dotfiles that get symlinked to ~ into their own directory. Remove some vim configuration. Remove oh-my-zsh.
This commit is contained in:
parent
448eebed44
commit
6174990049
107
.aliases
107
.aliases
@ -1,107 +0,0 @@
|
||||
alias g="git"
|
||||
alias h="history"
|
||||
alias j="jobs"
|
||||
alias emacs="emacsclient -t"
|
||||
alias readlink="greadlink"
|
||||
|
||||
# Detect which `ls` flavor is in use
|
||||
if ls --color > /dev/null 2>&1; then # GNU `ls`
|
||||
colorflag="--color"
|
||||
else # OS X `ls`
|
||||
colorflag="-G"
|
||||
fi
|
||||
|
||||
# Always use color output for `ls`
|
||||
alias ls="command ls ${colorflag}"
|
||||
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
|
||||
|
||||
# Enable aliases to be sudo’ed
|
||||
alias sudo='sudo '
|
||||
|
||||
# Gzip-enabled `curl`
|
||||
alias gurl="curl --compressed"
|
||||
|
||||
# IP addresses
|
||||
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||
alias localip="ipconfig getifaddr en1"
|
||||
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
|
||||
|
||||
# Enhanced WHOIS lookups
|
||||
alias whois="whois -h whois-servers.net"
|
||||
|
||||
# Flush Directory Service cache
|
||||
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
|
||||
|
||||
# Clean up LaunchServices to remove duplicates in the “Open With” menu
|
||||
alias lscleanup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user && killall Finder"
|
||||
|
||||
# View HTTP traffic
|
||||
alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'"
|
||||
alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\""
|
||||
|
||||
# Canonical hex dump; some systems have this symlinked
|
||||
command -v hd > /dev/null || alias hd="hexdump -C"
|
||||
|
||||
# OS X has no `md5sum`, so use `md5` as a fallback
|
||||
command -v md5sum > /dev/null || alias md5sum="md5"
|
||||
|
||||
# OS X has no `sha1sum`, so use `shasum` as a fallback
|
||||
command -v sha1sum > /dev/null || alias sha1sum="shasum"
|
||||
|
||||
# Trim new lines and copy to clipboard
|
||||
alias c="tr -d '\n' | pbcopy"
|
||||
|
||||
# Recursively delete `.DS_Store` files
|
||||
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete"
|
||||
|
||||
# ROT13-encode text. Works for decoding, too! ;)
|
||||
alias rot13='tr a-zA-Z n-za-mN-ZA-M'
|
||||
|
||||
# Empty the Trash on all mounted volumes and the main HDD
|
||||
# Also, clear Apple’s System Logs to improve shell startup speed
|
||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
|
||||
|
||||
# Show/hide hidden files in Finder
|
||||
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
|
||||
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
|
||||
|
||||
# Hide/show all desktop icons (useful when presenting)
|
||||
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
|
||||
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
|
||||
|
||||
# URL-encode strings
|
||||
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"'
|
||||
|
||||
# Merge PDF files
|
||||
# Usage: `mergepdf -o output.pdf input{1,2,3}.pdf`
|
||||
alias mergepdf='/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py'
|
||||
|
||||
# Disable Spotlight
|
||||
alias spotoff="sudo mdutil -a -i off"
|
||||
# Enable Spotlight
|
||||
alias spoton="sudo mdutil -a -i on"
|
||||
|
||||
# PlistBuddy alias, because sometimes `defaults` just doesn’t cut it
|
||||
alias plistbuddy="/usr/libexec/PlistBuddy"
|
||||
|
||||
# Ring the terminal bell, and put a badge on Terminal.app’s Dock icon
|
||||
# (useful when executing time-consuming commands)
|
||||
alias badge="tput bel"
|
||||
|
||||
# Intuitive map function
|
||||
# For example, to list all directories that contain a certain file:
|
||||
# find . -name .gitattributes | map dirname
|
||||
alias map="xargs -n1"
|
||||
|
||||
# One of @janmoesen’s ProTip™s
|
||||
for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
|
||||
alias "$method"="lwp-request -m '$method'"
|
||||
done
|
||||
|
||||
# Stuff I never really use but cannot delete either because of http://xkcd.com/530/
|
||||
alias stfu="osascript -e 'set volume output muted true'"
|
||||
alias pumpitup="osascript -e 'set volume 7'"
|
||||
alias hax="growlnotify -a 'Activity Monitor' 'System error' -m 'WTF R U DOIN'"
|
||||
|
||||
alias tmux="tmux -2"
|
||||
alias prj='cd ~/Dropbox/Projects'
|
1
.emacs.d
1
.emacs.d
@ -1 +0,0 @@
|
||||
Subproject commit 9935c9bdfd61f39f7fdab004a92f192908b9a931
|
215
.functions
215
.functions
@ -1,215 +0,0 @@
|
||||
function get_cols() {
|
||||
# Usage: get_cols [file_name] [column_num]
|
||||
column_list=""
|
||||
for column_num in $@
|
||||
do
|
||||
[ -r $column_num ] && continue
|
||||
|
||||
if echo $column_num | grep '\-F' ; then
|
||||
separator=$(echo $column_num | sed 's/-F//g' )
|
||||
continue
|
||||
fi
|
||||
|
||||
[ $column_num -lt '0' ] && column_num="(NF + 1 $column_num )" #Negative indices like python's array[-1]
|
||||
|
||||
[ -z $column_list ] && column_num="\$$column_num" || column_num=",\$$column_num" # Place commas appropriately.
|
||||
|
||||
column_list="$column_list$column_num"
|
||||
done
|
||||
|
||||
# Is the first parameter a file?
|
||||
awk_string="BEGIN { FS = \"$separator\" } ; {print $column_list}"
|
||||
|
||||
if [ -r $1 ]; then
|
||||
awk $awk_string $1
|
||||
else
|
||||
awk "$awk_string"
|
||||
fi
|
||||
|
||||
unset column_list
|
||||
unset awk_string
|
||||
}
|
||||
|
||||
function note() {
|
||||
if [ $# -eq 0 ]; then
|
||||
(ym && exec $EDITOR $HOME/notes/$(git rev-parse --abbrev-ref HEAD)) ;
|
||||
else
|
||||
$EDITOR $HOME/notes/"$*" ;
|
||||
fi
|
||||
}
|
||||
|
||||
function list_notes() {
|
||||
ls -c $HOME/notes/ | grep "$*"
|
||||
}
|
||||
|
||||
function get_shas_that_touched() {
|
||||
git log --oneline --reverse "$@" | get_col 1
|
||||
}
|
||||
|
||||
function echo_hash_if_exp_found_in_filename_diff() {
|
||||
[ ! -z "$(git diff $1~1 $1 -- $2 | cat | grep $3)" ] && echo $1
|
||||
}
|
||||
|
||||
function get_shas_that_touched_with_grep() {
|
||||
get_shas_that_touched $1 | xargs -I the_hash sh -c 'echo_hash_if_exp_found_in_filename_diff the_hash $1 $2'
|
||||
}
|
||||
|
||||
function show_interdiffs_matching_grep() {
|
||||
get_shas_that_touched_with_grep $1 $2 | xargs -I hash sh -c 'git diff hash~1 hash -- $1'
|
||||
}
|
||||
|
||||
function find_all_ssh_agent_sockets() {
|
||||
find /tmp -type s -name agent.\* 2> /dev/null | grep '/tmp/ssh-.*/agent.*'
|
||||
}
|
||||
|
||||
function set_ssh_agent_socket() {
|
||||
export SSH_AUTH_SOCK=$(find_all_ssh_agent_sockets | tail -n 1 | awk -F: '{print $1}')
|
||||
}
|
||||
|
||||
# Create a new directory and enter it
|
||||
function mkd() {
|
||||
mkdir -p "$@" && cd "$@"
|
||||
}
|
||||
|
||||
# Determine size of a file or total size of a directory
|
||||
function fs() {
|
||||
if du -b /dev/null > /dev/null 2>&1; then
|
||||
local arg=-sbh
|
||||
else
|
||||
local arg=-sh
|
||||
fi
|
||||
if [[ -n "$@" ]]; then
|
||||
du $arg -- "$@"
|
||||
else
|
||||
du $arg .[^.]* *
|
||||
fi
|
||||
}
|
||||
|
||||
# Use Git’s colored diff when available
|
||||
hash git &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
function diff() {
|
||||
git diff --no-index --color-words "$@"
|
||||
}
|
||||
fi
|
||||
|
||||
# Create a data URL from a file
|
||||
function dataurl() {
|
||||
local mimeType=$(file -b --mime-type "$1")
|
||||
if [[ $mimeType == text/* ]]; then
|
||||
mimeType="${mimeType};charset=utf-8"
|
||||
fi
|
||||
echo "data:${mimeType};base64,$(openssl base64 -in "$1" | tr -d '\n')"
|
||||
}
|
||||
|
||||
# Start an HTTP server from a directory, optionally specifying the port
|
||||
function server() {
|
||||
local port="${1:-8000}"
|
||||
sleep 1 && open "http://localhost:${port}/" &
|
||||
# Set the default Content-Type to `text/plain` instead of `application/octet-stream`
|
||||
# And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
|
||||
python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port"
|
||||
}
|
||||
|
||||
# Start a PHP server from a directory, optionally specifying the port
|
||||
# (Requires PHP 5.4.0+.)
|
||||
function phpserver() {
|
||||
local port="${1:-4000}"
|
||||
local ip=$(ipconfig getifaddr en1)
|
||||
sleep 1 && open "http://${ip}:${port}/" &
|
||||
php -S "${ip}:${port}"
|
||||
}
|
||||
|
||||
# Compare original and gzipped file size
|
||||
function gz() {
|
||||
local origsize=$(wc -c < "$1")
|
||||
local gzipsize=$(gzip -c "$1" | wc -c)
|
||||
local ratio=$(echo "$gzipsize * 100/ $origsize" | bc -l)
|
||||
printf "orig: %d bytes\n" "$origsize"
|
||||
printf "gzip: %d bytes (%2.2f%%)\n" "$gzipsize" "$ratio"
|
||||
}
|
||||
|
||||
# Test if HTTP compression (RFC 2616 + SDCH) is enabled for a given URL.
|
||||
# Send a fake UA string for sites that sniff it instead of using the Accept-Encoding header. (Looking at you, ajax.googleapis.com!)
|
||||
function httpcompression() {
|
||||
encoding="$(curl -LIs -H 'User-Agent: Mozilla/5 Gecko' -H 'Accept-Encoding: gzip,deflate,compress,sdch' "$1" | grep '^Content-Encoding:')" && echo "$1 is encoded using ${encoding#* }" || echo "$1 is not using any encoding"
|
||||
}
|
||||
|
||||
# Syntax-highlight JSON strings or files
|
||||
# Usage: `json '{"foo":42}'` or `echo '{"foo":42}' | json`
|
||||
function json() {
|
||||
if [ -t 0 ]; then # argument
|
||||
python -mjson.tool <<< "$*" | pygmentize -l javascript
|
||||
else # pipe
|
||||
python -mjson.tool | pygmentize -l javascript
|
||||
fi
|
||||
}
|
||||
|
||||
# All the dig info
|
||||
function digga() {
|
||||
dig +nocmd "$1" any +multiline +noall +answer
|
||||
}
|
||||
|
||||
# Escape UTF-8 characters into their 3-byte format
|
||||
function escape() {
|
||||
printf "\\\x%s" $(printf "$@" | xxd -p -c1 -u)
|
||||
echo # newline
|
||||
}
|
||||
|
||||
# Decode \x{ABCD}-style Unicode escape sequences
|
||||
function unidecode() {
|
||||
perl -e "binmode(STDOUT, ':utf8'); print \"$@\""
|
||||
echo # newline
|
||||
}
|
||||
|
||||
# Get a character’s Unicode code point
|
||||
function codepoint() {
|
||||
perl -e "use utf8; print sprintf('U+%04X', ord(\"$@\"))"
|
||||
echo # newline
|
||||
}
|
||||
|
||||
# Add note to Notes.app (OS X 10.8)
|
||||
# Usage: `note 'foo'` or `echo 'foo' | note`
|
||||
function note() {
|
||||
local text
|
||||
if [ -t 0 ]; then # argument
|
||||
text="$1"
|
||||
else # pipe
|
||||
text=$(cat)
|
||||
fi
|
||||
body=$(echo "$text" | sed -E 's|$|<br>|g')
|
||||
osascript >/dev/null <<EOF
|
||||
tell application "Notes"
|
||||
tell account "iCloud"
|
||||
tell folder "Notes"
|
||||
make new note with properties {name:"$text", body:"$body"}
|
||||
end tell
|
||||
end tell
|
||||
end tell
|
||||
EOF
|
||||
}
|
||||
|
||||
# Add reminder to Reminders.app (OS X 10.8)
|
||||
# Usage: `remind 'foo'` or `echo 'foo' | remind`
|
||||
function remind() {
|
||||
local text
|
||||
if [ -t 0 ]; then
|
||||
text="$1" # argument
|
||||
else
|
||||
text=$(cat) # pipe
|
||||
fi
|
||||
osascript >/dev/null <<EOF
|
||||
tell application "Reminders"
|
||||
tell the default list
|
||||
make new reminder with properties {name:"$text"}
|
||||
end tell
|
||||
end tell
|
||||
EOF
|
||||
}
|
||||
|
||||
# Manually remove a downloaded app or file from the quarantine
|
||||
function unquarantine() {
|
||||
for attribute in com.apple.metadata:kMDItemDownloadedDate com.apple.metadata:kMDItemWhereFroms com.apple.quarantine; do
|
||||
xattr -r -d "$attribute" "$@"
|
||||
done
|
||||
}
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -4,6 +4,3 @@
|
||||
[submodule ".emacs.d"]
|
||||
path = .emacs.d
|
||||
url = git@github.com:IvanMalison/.emacs.d.git
|
||||
[submodule "oh-my-zsh"]
|
||||
path = oh-my-zsh
|
||||
url = git@github.com:IvanMalison/oh-my-zsh.git
|
6
.gvimrc
6
.gvimrc
@ -1,6 +0,0 @@
|
||||
" Use the excellent Railscat theme by Jeff Kreeftmeijer (gVim-only)
|
||||
colorscheme railscat
|
||||
" Use 14pt Menlo
|
||||
set guifont=Menlo:h14
|
||||
" Better line-height
|
||||
set linespace=8
|
@ -1,210 +0,0 @@
|
||||
" Vim color file
|
||||
"
|
||||
" Author: Tomas Restrepo <tomas@winterdom.com>
|
||||
"
|
||||
" Note: Based on the monokai theme for TextMate
|
||||
" by Wimer Hazenberg and its darker variant
|
||||
" by Hamish Stuart Macpherson
|
||||
"
|
||||
|
||||
hi clear
|
||||
|
||||
set background=dark
|
||||
if version > 580
|
||||
" no guarantees for version 5.8 and below, but this makes it stop
|
||||
" complaining
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
endif
|
||||
let g:colors_name="molokai"
|
||||
|
||||
if exists("g:molokai_original")
|
||||
let s:molokai_original = g:molokai_original
|
||||
else
|
||||
let s:molokai_original = 0
|
||||
endif
|
||||
|
||||
hi Boolean guifg=#AE81FF
|
||||
hi Character guifg=#E6DB74
|
||||
hi Number guifg=#AE81FF
|
||||
hi String guifg=#E6DB74
|
||||
hi Conditional guifg=#F92672 gui=bold
|
||||
hi Constant guifg=#AE81FF gui=bold
|
||||
hi Cursor guifg=#000000 guibg=#F8F8F0
|
||||
hi Debug guifg=#BCA3A3 gui=bold
|
||||
hi Define guifg=#66D9EF
|
||||
hi Delimiter guifg=#8F8F8F
|
||||
hi DiffAdd guibg=#13354A
|
||||
hi DiffChange guifg=#89807D guibg=#4C4745
|
||||
hi DiffDelete guifg=#960050 guibg=#1E0010
|
||||
hi DiffText guibg=#4C4745 gui=italic,bold
|
||||
|
||||
hi Directory guifg=#A6E22E gui=bold
|
||||
hi Error guifg=#960050 guibg=#1E0010
|
||||
hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold
|
||||
hi Exception guifg=#A6E22E gui=bold
|
||||
hi Float guifg=#AE81FF
|
||||
hi FoldColumn guifg=#465457 guibg=#000000
|
||||
hi Folded guifg=#465457 guibg=#000000
|
||||
hi Function guifg=#A6E22E
|
||||
hi Identifier guifg=#FD971F
|
||||
hi Ignore guifg=#808080 guibg=bg
|
||||
hi IncSearch guifg=#C4BE89 guibg=#000000
|
||||
|
||||
hi Keyword guifg=#F92672 gui=bold
|
||||
hi Label guifg=#E6DB74 gui=none
|
||||
hi Macro guifg=#C4BE89 gui=italic
|
||||
hi SpecialKey guifg=#66D9EF gui=italic
|
||||
|
||||
hi MatchParen guifg=#000000 guibg=#FD971F gui=bold
|
||||
hi ModeMsg guifg=#E6DB74
|
||||
hi MoreMsg guifg=#E6DB74
|
||||
hi Operator guifg=#F92672
|
||||
|
||||
" complete menu
|
||||
hi Pmenu guifg=#66D9EF guibg=#000000
|
||||
hi PmenuSel guibg=#808080
|
||||
hi PmenuSbar guibg=#080808
|
||||
hi PmenuThumb guifg=#66D9EF
|
||||
|
||||
hi PreCondit guifg=#A6E22E gui=bold
|
||||
hi PreProc guifg=#A6E22E
|
||||
hi Question guifg=#66D9EF
|
||||
hi Repeat guifg=#F92672 gui=bold
|
||||
hi Search guifg=#FFFFFF guibg=#455354
|
||||
" marks column
|
||||
hi SignColumn guifg=#A6E22E guibg=#232526
|
||||
hi SpecialChar guifg=#F92672 gui=bold
|
||||
hi SpecialComment guifg=#465457 gui=bold
|
||||
hi Special guifg=#66D9EF guibg=bg gui=italic
|
||||
hi SpecialKey guifg=#888A85 gui=italic
|
||||
if has("spell")
|
||||
hi SpellBad guisp=#FF0000 gui=undercurl
|
||||
hi SpellCap guisp=#7070F0 gui=undercurl
|
||||
hi SpellLocal guisp=#70F0F0 gui=undercurl
|
||||
hi SpellRare guisp=#FFFFFF gui=undercurl
|
||||
endif
|
||||
hi Statement guifg=#F92672 gui=bold
|
||||
hi StatusLine guifg=#455354 guibg=fg
|
||||
hi StatusLineNC guifg=#808080 guibg=#080808
|
||||
hi StorageClass guifg=#FD971F gui=italic
|
||||
hi Structure guifg=#66D9EF
|
||||
hi Tag guifg=#F92672 gui=italic
|
||||
hi Title guifg=#ef5939
|
||||
hi Todo guifg=#FFFFFF guibg=bg gui=bold
|
||||
|
||||
hi Typedef guifg=#66D9EF
|
||||
hi Type guifg=#66D9EF gui=none
|
||||
hi Underlined guifg=#808080 gui=underline
|
||||
|
||||
hi VertSplit guifg=#808080 guibg=#080808 gui=bold
|
||||
hi VisualNOS guibg=#403D3D
|
||||
hi Visual guibg=#403D3D
|
||||
hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold
|
||||
hi WildMenu guifg=#66D9EF guibg=#000000
|
||||
|
||||
if s:molokai_original == 1
|
||||
hi Normal guifg=#F8F8F2 guibg=#272822
|
||||
hi Comment guifg=#75715E
|
||||
hi CursorLine guibg=#3E3D32
|
||||
hi CursorColumn guibg=#3E3D32
|
||||
hi LineNr guifg=#BCBCBC guibg=#3B3A32
|
||||
hi NonText guifg=#BCBCBC guibg=#3B3A32
|
||||
else
|
||||
hi Normal guifg=#F8F8F2 guibg=#1B1D1E
|
||||
hi Comment guifg=#465457
|
||||
hi CursorLine guibg=#293739
|
||||
hi CursorColumn guibg=#293739
|
||||
hi LineNr guifg=#BCBCBC guibg=#232526
|
||||
hi NonText guifg=#BCBCBC guibg=#232526
|
||||
end
|
||||
|
||||
"
|
||||
" Support for 256-color terminal
|
||||
"
|
||||
if &t_Co > 255
|
||||
hi Boolean ctermfg=135
|
||||
hi Character ctermfg=144
|
||||
hi Number ctermfg=135
|
||||
hi String ctermfg=144
|
||||
hi Conditional ctermfg=161 cterm=bold
|
||||
hi Constant ctermfg=135 cterm=bold
|
||||
hi Cursor ctermfg=16 ctermbg=253
|
||||
hi Debug ctermfg=225 cterm=bold
|
||||
hi Define ctermfg=81
|
||||
hi Delimiter ctermfg=241
|
||||
|
||||
hi DiffAdd ctermbg=24
|
||||
hi DiffChange ctermfg=181 ctermbg=239
|
||||
hi DiffDelete ctermfg=162 ctermbg=53
|
||||
hi DiffText ctermbg=102 cterm=bold
|
||||
|
||||
hi Directory ctermfg=118 cterm=bold
|
||||
hi Error ctermfg=219 ctermbg=89
|
||||
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold
|
||||
hi Exception ctermfg=118 cterm=bold
|
||||
hi Float ctermfg=135
|
||||
hi FoldColumn ctermfg=67 ctermbg=16
|
||||
hi Folded ctermfg=67 ctermbg=16
|
||||
hi Function ctermfg=118
|
||||
hi Identifier ctermfg=208
|
||||
hi Ignore ctermfg=244 ctermbg=232
|
||||
hi IncSearch ctermfg=193 ctermbg=16
|
||||
|
||||
hi Keyword ctermfg=161 cterm=bold
|
||||
hi Label ctermfg=229 cterm=none
|
||||
hi Macro ctermfg=193
|
||||
hi SpecialKey ctermfg=81
|
||||
|
||||
hi MatchParen ctermfg=16 ctermbg=208 cterm=bold
|
||||
hi ModeMsg ctermfg=229
|
||||
hi MoreMsg ctermfg=229
|
||||
hi Operator ctermfg=161
|
||||
|
||||
" complete menu
|
||||
hi Pmenu ctermfg=81 ctermbg=16
|
||||
hi PmenuSel ctermbg=244
|
||||
hi PmenuSbar ctermbg=232
|
||||
hi PmenuThumb ctermfg=81
|
||||
|
||||
hi PreCondit ctermfg=118 cterm=bold
|
||||
hi PreProc ctermfg=118
|
||||
hi Question ctermfg=81
|
||||
hi Repeat ctermfg=161 cterm=bold
|
||||
hi Search ctermfg=253 ctermbg=66
|
||||
|
||||
" marks column
|
||||
hi SignColumn ctermfg=118 ctermbg=235
|
||||
hi SpecialChar ctermfg=161 cterm=bold
|
||||
hi SpecialComment ctermfg=245 cterm=bold
|
||||
hi Special ctermfg=81 ctermbg=232
|
||||
hi SpecialKey ctermfg=245
|
||||
|
||||
hi Statement ctermfg=161 cterm=bold
|
||||
hi StatusLine ctermfg=238 ctermbg=253
|
||||
hi StatusLineNC ctermfg=244 ctermbg=232
|
||||
hi StorageClass ctermfg=208
|
||||
hi Structure ctermfg=81
|
||||
hi Tag ctermfg=161
|
||||
hi Title ctermfg=166
|
||||
hi Todo ctermfg=231 ctermbg=232 cterm=bold
|
||||
|
||||
hi Typedef ctermfg=81
|
||||
hi Type ctermfg=81 cterm=none
|
||||
hi Underlined ctermfg=244 cterm=underline
|
||||
|
||||
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold
|
||||
hi VisualNOS ctermbg=238
|
||||
hi Visual ctermbg=235
|
||||
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold
|
||||
hi WildMenu ctermfg=81 ctermbg=16
|
||||
|
||||
hi Normal ctermfg=252 ctermbg=233
|
||||
hi Comment ctermfg=59
|
||||
hi CursorLine ctermbg=234 cterm=none
|
||||
hi CursorColumn ctermbg=234
|
||||
hi LineNr ctermfg=250 ctermbg=234
|
||||
hi NonText ctermfg=250 ctermbg=234
|
||||
end
|
@ -1,133 +0,0 @@
|
||||
" Vim color scheme
|
||||
"
|
||||
" Name: railscat.vim
|
||||
" Maintainer: Jeff Kreeftmeijer
|
||||
" License: public domain
|
||||
" URL: https://gist.github.com/1523432
|
||||
"
|
||||
" A GUI only extended version of the Railscasts+ theme, that comes with
|
||||
" Janus [1] and is, in turn, an extension to the original Railscasts theme
|
||||
" [2], which is a port of the RailsCasts TextMate theme [3] to Vim.
|
||||
"
|
||||
" [1] https://github.com/carlhuda/janus
|
||||
" [2] http://www.vim.org/scripts/script.php?script_id=2175
|
||||
" [3] http://railscasts.com/about
|
||||
|
||||
set background=dark
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
let g:colors_name = "railscat"
|
||||
|
||||
" Colors
|
||||
" Brown #BC9458
|
||||
" Dark Blue #6D9CBE
|
||||
" Dark Green #519F50
|
||||
" Dark Orange #CC7833
|
||||
" Light Blue #D0D0FF
|
||||
" Light Green #A5C261
|
||||
" Tan #FFC66D
|
||||
|
||||
hi Normal guifg=#E6E1DC guibg=#2B2B2B
|
||||
hi Cursor guibg=#FFFFFF
|
||||
hi Search guibg=#5A647E
|
||||
hi Visual guibg=#5A647E
|
||||
|
||||
" Folds
|
||||
" -----
|
||||
" line used for closed folds
|
||||
hi Folded guifg=#F6F3E8 guibg=#444444 gui=NONE
|
||||
|
||||
" Misc
|
||||
" ----
|
||||
" directory names and other special names in listings
|
||||
hi Directory guifg=#A5C261 gui=NONE
|
||||
|
||||
" Popup Menu
|
||||
" ----------
|
||||
" normal item in popup
|
||||
hi Pmenu guifg=#F6F3E8 guibg=#444444 gui=NONE
|
||||
" selected item in popup
|
||||
hi PmenuSel guifg=#000000 guibg=#A5C261 gui=NONE
|
||||
" scrollbar in popup
|
||||
hi PMenuSbar guibg=#5A647E gui=NONE
|
||||
" thumb of the scrollbar in the popup
|
||||
hi PMenuThumb guibg=#AAAAAA gui=NONE
|
||||
|
||||
"rubyComment
|
||||
hi Comment guifg=#BC9458 gui=italic
|
||||
hi Todo guifg=#BC9458 guibg=NONE gui=italic
|
||||
|
||||
"rubyPseudoVariable
|
||||
"nil, self, symbols, etc
|
||||
hi Constant guifg=#6D9CBE
|
||||
|
||||
"rubyClass, rubyModule, rubyDefine
|
||||
"def, end, include, etc
|
||||
hi Define guifg=#CC7833
|
||||
|
||||
"rubyInterpolation
|
||||
hi Delimiter guifg=#519F50
|
||||
|
||||
"rubyError, rubyInvalidVariable
|
||||
hi Error guifg=#FFFFFF guibg=#990000
|
||||
|
||||
"rubyFunction
|
||||
hi Function guifg=#FFC66D gui=NONE
|
||||
|
||||
"rubyIdentifier
|
||||
"@var, @@var, $var, etc
|
||||
hi Identifier guifg=#D0D0FF gui=NONE
|
||||
|
||||
"rubyInclude
|
||||
"include, autoload, extend, load, require
|
||||
hi Include guifg=#CC7833 gui=NONE
|
||||
|
||||
"rubyKeyword, rubyKeywordAsMethod
|
||||
"alias, undef, super, yield, callcc, caller, lambda, proc
|
||||
hi Keyword guifg=#CC7833
|
||||
|
||||
" same as define
|
||||
hi Macro guifg=#CC7833 gui=NONE
|
||||
|
||||
"rubyInteger
|
||||
hi Number guifg=#A5C261
|
||||
|
||||
" #if, #else, #endif
|
||||
hi PreCondit guifg=#CC7833 gui=NONE
|
||||
|
||||
" generic preprocessor
|
||||
hi PreProc guifg=#CC7833 gui=NONE
|
||||
|
||||
"rubyControl, rubyAccess, rubyEval
|
||||
"case, begin, do, for, if unless, while, until else, etc.
|
||||
hi Statement guifg=#CC7833 gui=NONE
|
||||
|
||||
"rubyString
|
||||
hi String guifg=#A5C261
|
||||
|
||||
hi Title guifg=#FFFFFF
|
||||
|
||||
"rubyConstant
|
||||
hi Type guifg=#DA4939 gui=NONE
|
||||
|
||||
hi DiffAdd guifg=#E6E1DC guibg=#144212
|
||||
hi DiffDelete guifg=#E6E1DC guibg=#660000
|
||||
|
||||
hi link htmlTag xmlTag
|
||||
hi link htmlTagName xmlTagName
|
||||
hi link htmlEndTag xmlEndTag
|
||||
|
||||
hi xmlTag guifg=#E8BF6A
|
||||
hi xmlTagName guifg=#E8BF6A
|
||||
hi xmlEndTag guifg=#E8BF6A
|
||||
|
||||
hi StatusLine guibg=#cccccc guifg=#000000
|
||||
hi StatusLineNC guibg=#666666 guifg=#333333
|
||||
hi CursorLine guibg=#262626
|
||||
hi VertSplit guifg=#262626
|
||||
hi ColorColumn guibg=#262626
|
||||
hi LineNr guifg=#666666 guibg=#333333
|
||||
hi NonText guifg=#666666
|
||||
hi SignColumn guibg=#666666
|
@ -1,74 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: JSON
|
||||
" Maintainer: Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
|
||||
" Last Change: 2009-06-16
|
||||
" Version: 0.4
|
||||
" {{{1
|
||||
|
||||
" Syntax setup {{{2
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'json'
|
||||
endif
|
||||
|
||||
" Syntax: Strings {{{2
|
||||
syn region jsonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=jsonEscape
|
||||
" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
|
||||
syn region jsonStringSQ start=+'+ skip=+\\\\\|\\"+ end=+'+
|
||||
|
||||
" Syntax: Escape sequences {{{3
|
||||
syn match jsonEscape "\\["\\/bfnrt]" contained
|
||||
syn match jsonEscape "\\u\x\{4}" contained
|
||||
|
||||
" Syntax: Strings should always be enclosed with quotes.
|
||||
syn match jsonNoQuotes "\<\a\+\>"
|
||||
|
||||
" Syntax: Numbers {{{2
|
||||
syn match jsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>"
|
||||
|
||||
" Syntax: An integer part of 0 followed by other digits is not allowed.
|
||||
syn match jsonNumError "-\=\<0\d\.\d*\>"
|
||||
|
||||
" Syntax: Boolean {{{2
|
||||
syn keyword jsonBoolean true false
|
||||
|
||||
" Syntax: Null {{{2
|
||||
syn keyword jsonNull null
|
||||
|
||||
" Syntax: Braces {{{2
|
||||
syn match jsonBraces "[{}\[\]]"
|
||||
|
||||
" Define the default highlighting. {{{1
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_json_syn_inits")
|
||||
if version < 508
|
||||
let did_json_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
HiLink jsonString String
|
||||
HiLink jsonEscape Special
|
||||
HiLink jsonNumber Number
|
||||
HiLink jsonBraces Operator
|
||||
HiLink jsonNull Function
|
||||
HiLink jsonBoolean Boolean
|
||||
|
||||
HiLink jsonNumError Error
|
||||
HiLink jsonStringSQ Error
|
||||
HiLink jsonNoQuotes Error
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "json"
|
||||
if main_syntax == 'json'
|
||||
unlet main_syntax
|
||||
endif
|
96
.vimrc
96
.vimrc
@ -1,96 +0,0 @@
|
||||
" Make Vim more useful
|
||||
set nocompatible
|
||||
" Use the OS clipboard by default (on versions compiled with `+clipboard`)
|
||||
set clipboard=unnamed
|
||||
" Enhance command-line completion
|
||||
set wildmenu
|
||||
" Allow cursor keys in insert mode
|
||||
set esckeys
|
||||
" Allow backspace in insert mode
|
||||
set backspace=indent,eol,start
|
||||
" Optimize for fast terminal connections
|
||||
set ttyfast
|
||||
" Add the g flag to search/replace by default
|
||||
set gdefault
|
||||
" Use UTF-8 without BOM
|
||||
set encoding=utf-8 nobomb
|
||||
" Change mapleader
|
||||
let mapleader=","
|
||||
" Don’t add empty newlines at the end of files
|
||||
set binary
|
||||
set noeol
|
||||
" Centralize backups, swapfiles and undo history
|
||||
set backupdir=~/.vim/backups
|
||||
set directory=~/.vim/swaps
|
||||
if exists("&undodir")
|
||||
set undodir=~/.vim/undo
|
||||
endif
|
||||
|
||||
" Respect modeline in files
|
||||
set modeline
|
||||
set modelines=4
|
||||
" Enable per-directory .vimrc files and disable unsafe commands in them
|
||||
set exrc
|
||||
set secure
|
||||
" Enable line numbers
|
||||
set number
|
||||
" Enable syntax highlighting
|
||||
syntax on
|
||||
" Highlight current line
|
||||
set cursorline
|
||||
" Make tabs as wide as two spaces
|
||||
set tabstop=2
|
||||
" Show “invisible” characters
|
||||
set lcs=tab:▸\ ,trail:·,eol:¬,nbsp:_
|
||||
set list
|
||||
" Highlight searches
|
||||
set hlsearch
|
||||
" Ignore case of searches
|
||||
set ignorecase
|
||||
" Highlight dynamically as pattern is typed
|
||||
set incsearch
|
||||
" Always show status line
|
||||
set laststatus=2
|
||||
" Enable mouse in all modes
|
||||
set mouse=a
|
||||
" Disable error bells
|
||||
set noerrorbells
|
||||
" Don’t reset cursor to start of line when moving around.
|
||||
set nostartofline
|
||||
" Show the cursor position
|
||||
set ruler
|
||||
" Don’t show the intro message when starting Vim
|
||||
set shortmess=atI
|
||||
" Show the current mode
|
||||
set showmode
|
||||
" Show the filename in the window titlebar
|
||||
set title
|
||||
" Show the (partial) command as it’s being typed
|
||||
set showcmd
|
||||
" Use relative line numbers
|
||||
if exists("&relativenumber")
|
||||
set relativenumber
|
||||
au BufReadPost * set relativenumber
|
||||
endif
|
||||
" Start scrolling three lines before the horizontal window border
|
||||
set scrolloff=3
|
||||
|
||||
" Strip trailing whitespace (,ss)
|
||||
function! StripWhitespace()
|
||||
let save_cursor = getpos(".")
|
||||
let old_query = getreg('/')
|
||||
:%s/\s\+$//e
|
||||
call setpos('.', save_cursor)
|
||||
call setreg('/', old_query)
|
||||
endfunction
|
||||
noremap <leader>ss :call StripWhitespace()<CR>
|
||||
" Save a file as root (,W)
|
||||
noremap <leader>W :w !sudo tee % > /dev/null<CR>
|
||||
|
||||
" Automatic commands
|
||||
if has("autocmd")
|
||||
" Enable file type detection
|
||||
filetype on
|
||||
" Treat .json files as .js
|
||||
autocmd BufNewFile,BufRead *.json setfiletype json syntax=javascript
|
||||
endif
|
29
.zshrc
29
.zshrc
@ -1,29 +0,0 @@
|
||||
# Path to your oh-my-zsh configuration.
|
||||
ZSH=$HOME/.oh-my-zsh
|
||||
|
||||
# Customize to your needs...
|
||||
for file in ~/.{path,exports,prompt,aliases,functions,extra}; do
|
||||
[ -r "$file" ] && source "$file"
|
||||
done
|
||||
|
||||
ZSH_THEME="fino"
|
||||
|
||||
# Set to this to use case-sensitive completion
|
||||
CASE_SENSITIVE="true"
|
||||
|
||||
# Comment this out to disable bi-weekly auto-update checks
|
||||
DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
plugins=(git github heroku)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
unset file
|
||||
|
||||
# COMPLETION SETTINGS
|
||||
# add custom completion scripts
|
||||
fpath=(~/.completions $fpath)
|
||||
|
||||
# compsys initialization
|
||||
autoload -U compinit
|
||||
compinit
|
21
bootstrap.sh
21
bootstrap.sh
@ -7,21 +7,17 @@ case `uname` in
|
||||
readlink_command='readlink'
|
||||
esac
|
||||
|
||||
CURRENT_DIRECTORY="$(dirname "${BASH_SOURCE}" | xargs "${readlink_command}" -f)"
|
||||
CURRENT_DIRECTORY="$(dirname "${BASH_SOURCE}" | xargs "${readlink_command}" -f)/dotfiles"
|
||||
cd $CURRENT_DIRECTORY
|
||||
|
||||
echo "Linking From $CURRENT_DIRECTORY"
|
||||
|
||||
function doIt() {
|
||||
function symlink_dotfiles() {
|
||||
[[ -a ~/.dotfiles-backups ]] || mkdir ~/.dotfiles-backups
|
||||
exclude_list="setup.sh Monaco-Powerline.otf web_start.sh oh-my-zsh tmux-powerline .git .gitmodules .DS_store bootstrap.sh README.md more_python.txt . .. requirements.txt"
|
||||
|
||||
for i in .*; do
|
||||
if ! [ -z ${i/*.swp/} ] && ! [[ $exclude_list =~ $i ]]
|
||||
then
|
||||
[[ -a ~/$i ]] && mv ~/$i ~/.dotfiles-backups/$i
|
||||
ln -si $CURRENT_DIRECTORY/$i ~/$i
|
||||
fi
|
||||
for filename in *; do
|
||||
local link_destination="$HOME/.$filename"
|
||||
local absolute_path="$($readlink_command -f $filename)"
|
||||
ln -si $absolute_path $link_destination
|
||||
done
|
||||
}
|
||||
|
||||
@ -31,8 +27,7 @@ else
|
||||
read -p "This may overwrite existing files in your home directory. Are you sure? (y/n) " -n 1
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
doIt
|
||||
symlink_dotfiles
|
||||
fi
|
||||
fi
|
||||
unset doIt
|
||||
source ~/.bash_profile
|
||||
unset symlink_dotfiles
|
||||
|
5145
com.googlecode.iterm2.plist
Normal file
5145
com.googlecode.iterm2.plist
Normal file
File diff suppressed because it is too large
Load Diff
2
dotfiles/bashrc
Normal file
2
dotfiles/bashrc
Normal file
@ -0,0 +1,2 @@
|
||||
source ~/.lib/shellrc.sh
|
||||
source ~/.lib/bash.sh
|
@ -7,8 +7,6 @@
|
||||
d = !"git diff-index --quiet HEAD -- || clear; git diff --patch-with-stat"
|
||||
# `git di $number` shows the diff between the state `$number` revisions ago and the current state
|
||||
di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
|
||||
# Pull in remote changes for the current repository and all its submodules
|
||||
p = !"git pull; git submodule foreach git pull origin master"
|
||||
# Clone a repository including all submodules
|
||||
c = clone --recursive
|
||||
# Commit all changes
|
||||
@ -23,9 +21,7 @@
|
||||
credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"
|
||||
# Interactive rebase with the given number of latest commits
|
||||
reb = "!r() { git rebase -i HEAD~$1; }; r"
|
||||
# Undo a `git push`
|
||||
undopush = push -f origin HEAD^:master
|
||||
sui = submodule update --init
|
||||
suir = submodule update --init --recursive
|
||||
|
||||
[core]
|
||||
# Use custom `.gitignore` and `.gitattributes`
|
||||
@ -73,3 +69,5 @@
|
||||
[user]
|
||||
email = IvanMalison@gmail.com
|
||||
name = Ivan Malison
|
||||
[merge]
|
||||
conflictstyle = diff3
|
@ -14,3 +14,10 @@ Thumbs.db
|
||||
.Trashes
|
||||
|
||||
.emacs.desktop
|
||||
|
||||
.emacs*
|
||||
|
||||
# yelp
|
||||
TAGS
|
||||
run_tests.sh
|
||||
untracked/
|
@ -1,5 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Make sure we’re using the latest Homebrew
|
||||
brew update
|
||||
|
||||
@ -29,6 +27,9 @@ brew install git
|
||||
brew install tmux
|
||||
brew install nmap
|
||||
brew install readline
|
||||
brew install netcat
|
||||
brew install reattach-to-user-namespace
|
||||
brew install ngrep
|
||||
|
||||
# Remove outdated versions from the cellar
|
||||
brew cleanup
|
@ -4,7 +4,7 @@ _testify() {
|
||||
typeset -A opt_args
|
||||
local context state line
|
||||
|
||||
BASE_TEST_PATH='tests'
|
||||
BASE_TEST_PATH='yelp.tests'
|
||||
_arguments "1:testify_file:->file" "2:testify_:->test_case"
|
||||
|
||||
case $state in
|
12
dotfiles/lib/get_cols.awk
Normal file
12
dotfiles/lib/get_cols.awk
Normal file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env gawk -f
|
||||
BEGIN{
|
||||
column_count=split(cols,column_numbers," ");
|
||||
}
|
||||
{
|
||||
for(i=1; i<=column_count; i++)
|
||||
if(column_numbers[i] < 0)
|
||||
printf "%s%s", $(NF + 1 + column_numbers[i]), OFS
|
||||
else
|
||||
printf "%s%s", $column_numbers[i], OFS
|
||||
printf "%s", ORS
|
||||
}
|
3
dotfiles/lib/shellrc.sh
Normal file
3
dotfiles/lib/shellrc.sh
Normal file
@ -0,0 +1,3 @@
|
||||
for filename in ~/.lib/shellrc/*; do
|
||||
source $filename
|
||||
done
|
52
dotfiles/lib/shellrc/aliases.sh
Normal file
52
dotfiles/lib/shellrc/aliases.sh
Normal file
@ -0,0 +1,52 @@
|
||||
alias script_abspath='$(dirname "${BASH_SOURCE}" | xargs "${readlink_command}" -f)'
|
||||
|
||||
alias emacs="emacsclient -t"
|
||||
alias readlink="greadlink"
|
||||
|
||||
alias sudo='sudo '
|
||||
|
||||
# IP addresses
|
||||
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||
alias localip="ifconfig getifaddr en1"
|
||||
|
||||
alias whois="whois -h whois-servers.net"
|
||||
|
||||
# Clean up LaunchServices to remove duplicates in the “Open With” menu
|
||||
alias lscleanup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user && killall Finder"
|
||||
|
||||
# View HTTP traffic
|
||||
alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'"
|
||||
alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\""
|
||||
|
||||
# Canonical hex dump; some systems have this symlinked
|
||||
command -v hd > /dev/null || alias hd="hexdump -C"
|
||||
|
||||
# OS X has no `md5sum`, so use `md5` as a fallback
|
||||
command -v md5sum > /dev/null || alias md5sum="md5"
|
||||
|
||||
# OS X has no `sha1sum`, so use `shasum` as a fallback
|
||||
command -v sha1sum > /dev/null || alias sha1sum="shasum"
|
||||
|
||||
# URL-encode strings
|
||||
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"'
|
||||
|
||||
# Merge PDF files
|
||||
# Usage: `mergepdf -o output.pdf input{1,2,3}.pdf`
|
||||
alias mergepdf='/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py'
|
||||
|
||||
# Disable Spotlight
|
||||
alias spotoff="sudo mdutil -a -i off"
|
||||
# Enable Spotlight
|
||||
alias spoton="sudo mdutil -a -i on"
|
||||
|
||||
# One of @janmoesen’s ProTip™s
|
||||
for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
|
||||
alias "$method"="lwp-request -m '$method'"
|
||||
done
|
||||
|
||||
alias stfu="osascript -e 'set volume output muted true'"
|
||||
alias pumpitup="osascript -e 'set volume 7'"
|
||||
|
||||
alias tmux="tmux -2"
|
||||
alias remote_os_copy='linux_nc_paste_to_remote_clipboard'
|
||||
alias timestamp='date +%s'
|
66
dotfiles/lib/shellrc/functions.sh
Normal file
66
dotfiles/lib/shellrc/functions.sh
Normal file
@ -0,0 +1,66 @@
|
||||
function parse_git_branch() {
|
||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
|
||||
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
|
||||
echo ${ref#refs/heads/}
|
||||
}
|
||||
|
||||
function current_shell() {
|
||||
ps -p $$ | tail -1 | awk '{print $NF}' | xargs which | xargs readlink -f
|
||||
}
|
||||
|
||||
function is_zsh() {
|
||||
test -n "$(current_shell | grep -o zsh)"
|
||||
}
|
||||
|
||||
function get_cols() {
|
||||
FS=' '
|
||||
while getopts "F:" OPTCHAR; do
|
||||
case $OPTCHAR in
|
||||
F)
|
||||
FS=$OPTARG
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
awk -f "$HOME/.lib/get_cols.awk" -v "cols=$*" -v "FS=$FS"
|
||||
}
|
||||
|
||||
function find_all_ssh_agent_sockets() {
|
||||
find /tmp -type s -name agent.\* 2> /dev/null | grep '/tmp/ssh-.*/agent.*'
|
||||
}
|
||||
|
||||
function set_ssh_agent_socket() {
|
||||
export SSH_AUTH_SOCK=$(find_all_ssh_agent_sockets | tail -n 1 | awk -F: '{print $1}')
|
||||
}
|
||||
|
||||
# Determine size of a file or total size of a directory
|
||||
function fs() {
|
||||
if du -b /dev/null > /dev/null 2>&1; then
|
||||
local arg=-sbh
|
||||
else
|
||||
local arg=-sh
|
||||
fi
|
||||
if [[ -n "$@" ]]; then
|
||||
du $arg -- "$@"
|
||||
else
|
||||
du $arg .[^.]* *
|
||||
fi
|
||||
}
|
||||
|
||||
# Start an HTTP server from a directory, optionally specifying the port
|
||||
function server() {
|
||||
local port="${1:-8000}"
|
||||
sleep 1 && open "http://localhost:${port}/" &
|
||||
# Set the default Content-Type to `text/plain` instead of `application/octet-stream`
|
||||
# And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
|
||||
python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port"
|
||||
}
|
||||
|
||||
# All the dig info
|
||||
function digga() {
|
||||
dig +nocmd "$1" any +multiline +noall +answer
|
||||
}
|
||||
|
||||
function shell_stats() {
|
||||
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
|
||||
}
|
20
dotfiles/lib/shellrc/remote_clipboard.sh
Normal file
20
dotfiles/lib/shellrc/remote_clipboard.sh
Normal file
@ -0,0 +1,20 @@
|
||||
REMOTE_CLIPBOARD_PORT='1234'
|
||||
|
||||
function remote_clipboard_server() {
|
||||
while [ 1 ]
|
||||
do
|
||||
netcat -l -p ${1-$REMOTE_CLIPBOARD_PORT} -e "pbcopy"
|
||||
done
|
||||
}
|
||||
|
||||
function remote_clipboard_server_daemon() {
|
||||
daemonize `which reattach-to-user-namespace` -l $SHELL -c "source ~/.zshrc; remote_clipboard_server"
|
||||
}
|
||||
|
||||
function linux_nc_paste_to_remote_clipboard() {
|
||||
nc localhost ${1-$REMOTE_CLIPBOARD_PORT} -q 0
|
||||
}
|
||||
|
||||
function osx_nc_paste_to_remote_clipboard() {
|
||||
nc localhost ${1-$REMOTE_CLIPBOARD_PORT} -D
|
||||
}
|
87
dotfiles/lib/shellrc/yelp.sh
Normal file
87
dotfiles/lib/shellrc/yelp.sh
Normal file
@ -0,0 +1,87 @@
|
||||
alias i="ipython tools/interactive.py"
|
||||
alias apperror="tools/scribereader -e prod -f apperror | tools/pretty_error_log"
|
||||
alias environ=". ~/.pgconf-$USER/environ.sh"
|
||||
alias ym="cd ~/pg/yelp-main"
|
||||
alias live="cd /nail/live/yelp"
|
||||
alias sb="sandbox -vv --minimal"
|
||||
|
||||
function fix_environment_script() {
|
||||
sed -i 's/export YELP_CONFIG:yelp_conn:replication_delay_params.*$//' $YELP_SANDBOX_ROOT/environment.sh
|
||||
}
|
||||
|
||||
function get_sandbox_identifier() {
|
||||
echo $YELP_SANDBOX_ROOT | gawk 'match($0, /pgconf-.*-(.*)/, matched) {print matched[1]}'
|
||||
}
|
||||
|
||||
function is_proddb() {
|
||||
python 2>/dev/null - <<END
|
||||
import os
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
|
||||
def is_proddb_from_topology_info(topology_info):
|
||||
for cluster_info in topology_info['topology']:
|
||||
if cluster_info['cluster'] == 'primary':
|
||||
return cluster_info['entries'][0]['host'] != '127.0.0.1'
|
||||
|
||||
def is_proddb_from_topology_filename(topology_filename):
|
||||
with open(topology_filename) as topology_file:
|
||||
return is_proddb_from_topology_info(yaml.load(topology_file))
|
||||
|
||||
def is_proddb():
|
||||
try:
|
||||
topology_filename = os.environ.get('TOPOLOGY_FILE')
|
||||
if topology_filename:
|
||||
return is_proddb_from_topology_filename(topology_filename)
|
||||
return False
|
||||
except:
|
||||
pass
|
||||
|
||||
sys.exit(0 if is_proddb() else 1)
|
||||
END
|
||||
}
|
||||
|
||||
function sandbox_prompt_info() {
|
||||
local sandbox_string=''
|
||||
if is_proddb
|
||||
then
|
||||
sandbox_string="proddb "
|
||||
fi
|
||||
if [ "$YELP_IN_SANDBOX" ];
|
||||
then
|
||||
sandbox_string=$sandbox_string"sandbox-$(get_sandbox_identifier)"
|
||||
else
|
||||
sandbox_string="no sandbox"
|
||||
fi
|
||||
echo $sandbox_string
|
||||
}
|
||||
|
||||
function bash_sandbox_color() {
|
||||
if [ $YELP_IN_SANDBOX ]
|
||||
then
|
||||
sandbox_color='\e[0;33m'
|
||||
else
|
||||
sandbox_color='\e[0;31m'
|
||||
fi
|
||||
}
|
||||
|
||||
function zsh_sandbox_color() {
|
||||
if [ $YELP_IN_SANDBOX ]
|
||||
then
|
||||
sandbox_color="%{$FG[149]%}"
|
||||
else
|
||||
sandbox_color="%{$FG[001]%}"
|
||||
fi
|
||||
echo $sandbox_color
|
||||
}
|
||||
|
||||
function colored_sandbox_string() {
|
||||
if [ is_zsh ]
|
||||
then
|
||||
sandbox_color=$(zsh_sandbox_color)
|
||||
else
|
||||
sandbox_color=$(bash_sandbox_color)
|
||||
fi
|
||||
echo $sandbox_color$(sandbox_prompt_info)
|
||||
}
|
30
dotfiles/lib/zsh.sh
Normal file
30
dotfiles/lib/zsh.sh
Normal file
@ -0,0 +1,30 @@
|
||||
for filename in ~/.lib/zsh/*; do
|
||||
source $filename
|
||||
done
|
||||
|
||||
CASE_SENSITIVE="true"
|
||||
fpath=(~/.lib/completions $fpath)
|
||||
autoload -U compinit
|
||||
compinit
|
||||
# Allow command line editing.
|
||||
autoload -U edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '\C-x\C-e' edit-command-line
|
||||
|
||||
local
|
||||
|
||||
function current_directory() {
|
||||
local PWD=$(pwd)
|
||||
echo "${PWD/#$HOME/~}"
|
||||
}
|
||||
|
||||
function git_prompt_info () {
|
||||
if test -z $(parse_git_branch);
|
||||
then
|
||||
echo ""
|
||||
else
|
||||
echo " %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}$(parse_git_branch)%{$reset_color%}"
|
||||
fi
|
||||
}
|
||||
|
||||
PROMPT="%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(hostname -s)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}\$(current_directory)%{$reset_color%}\$(git_prompt_info) %{$FG[239]%}with \$(colored_sandbox_string)%{$FG[255]%} "
|
72
dotfiles/lib/zsh/completion.sh
Normal file
72
dotfiles/lib/zsh/completion.sh
Normal file
@ -0,0 +1,72 @@
|
||||
# fixme - the load process here seems a bit bizarre
|
||||
|
||||
unsetopt menu_complete # do not autoselect the first completion entry
|
||||
unsetopt flowcontrol
|
||||
setopt auto_menu # show completion menu on succesive tab press
|
||||
setopt complete_in_word
|
||||
setopt always_to_end
|
||||
|
||||
WORDCHARS=''
|
||||
|
||||
zmodload -i zsh/complist
|
||||
|
||||
## case-insensitive (all),partial-word and then substring completion
|
||||
if [ "x$CASE_SENSITIVE" = "xtrue" ]; then
|
||||
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
unset CASE_SENSITIVE
|
||||
else
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
fi
|
||||
|
||||
zstyle ':completion:*' list-colors ''
|
||||
|
||||
# should this be in keybindings?
|
||||
bindkey -M menuselect '^o' accept-and-infer-next-history
|
||||
|
||||
zstyle ':completion:*:*:*:*:*' menu select
|
||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
||||
zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w"
|
||||
|
||||
# disable named-directories autocompletion
|
||||
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||
cdpath=(.)
|
||||
|
||||
# use /etc/hosts and known_hosts for hostname completion
|
||||
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _global_ssh_hosts=()
|
||||
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
||||
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
||||
hosts=(
|
||||
"$_global_ssh_hosts[@]"
|
||||
"$_ssh_hosts[@]"
|
||||
"$_etc_hosts[@]"
|
||||
"$HOST"
|
||||
localhost
|
||||
)
|
||||
zstyle ':completion:*:hosts' hosts $hosts
|
||||
|
||||
# Use caching so that commands like apt and dpkg complete are useable
|
||||
zstyle ':completion::complete:*' use-cache 1
|
||||
zstyle ':completion::complete:*' cache-path $ZSH/cache/
|
||||
|
||||
# Don't complete uninteresting users
|
||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
|
||||
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
|
||||
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
|
||||
mailman mailnull mldonkey mysql nagios \
|
||||
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
|
||||
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
|
||||
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs
|
||||
|
||||
# ... unless we really want to.
|
||||
zstyle '*' single-ignored show
|
||||
|
||||
if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then
|
||||
expand-or-complete-with-dots() {
|
||||
echo -n "\e[31m......\e[0m"
|
||||
zle expand-or-complete
|
||||
zle redisplay
|
||||
}
|
||||
zle -N expand-or-complete-with-dots
|
||||
bindkey "^I" expand-or-complete-with-dots
|
||||
fi
|
22
dotfiles/lib/zsh/history.sh
Normal file
22
dotfiles/lib/zsh/history.sh
Normal file
@ -0,0 +1,22 @@
|
||||
## Command history configuration
|
||||
HISTFILE=$HOME/.zsh_history
|
||||
HISTSIZE=100000
|
||||
SAVEHIST=100000
|
||||
|
||||
setopt append_history
|
||||
setopt extended_history
|
||||
setopt hist_expire_dups_first
|
||||
setopt hist_ignore_dups # ignore duplication command history list
|
||||
setopt hist_ignore_space
|
||||
setopt hist_verify
|
||||
setopt inc_append_history
|
||||
setopt share_history # share command history data
|
||||
|
||||
# TODO: Explain what some of this does..
|
||||
|
||||
bindkey -e
|
||||
bindkey '\ew' kill-region
|
||||
bindkey -s '\el' "ls\n"
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
bindkey "^[[5~" up-line-or-history
|
||||
bindkey "^[[6~" down-line-or-history
|
46
dotfiles/lib/zsh/key_bindings.sh
Normal file
46
dotfiles/lib/zsh/key_bindings.sh
Normal file
@ -0,0 +1,46 @@
|
||||
bindkey -e
|
||||
bindkey '\ew' kill-region
|
||||
bindkey -s '\el' "ls\n"
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
bindkey "^[[5~" up-line-or-history
|
||||
bindkey "^[[6~" down-line-or-history
|
||||
|
||||
# make search up and down work, so partially type and hit up/down to find relevant stuff
|
||||
bindkey '^[[A' up-line-or-search
|
||||
bindkey '^[[B' down-line-or-search
|
||||
|
||||
bindkey "^[[H" beginning-of-line
|
||||
bindkey "^[[1~" beginning-of-line
|
||||
bindkey "^[OH" beginning-of-line
|
||||
bindkey "^[[F" end-of-line
|
||||
bindkey "^[[4~" end-of-line
|
||||
bindkey "^[OF" end-of-line
|
||||
bindkey ' ' magic-space # also do history expansion on space
|
||||
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;5D" backward-word
|
||||
|
||||
bindkey '^[[Z' reverse-menu-complete
|
||||
|
||||
# Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~
|
||||
bindkey '^?' backward-delete-char
|
||||
bindkey "^[[3~" delete-char
|
||||
bindkey "^[3;5~" delete-char
|
||||
bindkey "\e[3~" delete-char
|
||||
|
||||
bindkey -e ## emacs key bindings
|
||||
|
||||
bindkey '^[[A' up-line-or-search
|
||||
bindkey '^[[B' down-line-or-search
|
||||
bindkey '^[^[[C' emacs-forward-word
|
||||
bindkey '^[^[[D' emacs-backward-word
|
||||
|
||||
bindkey -s '^X^Z' '%-^M'
|
||||
bindkey '^[e' expand-cmd-path
|
||||
bindkey '^[^I' reverse-menu-complete
|
||||
bindkey '^X^N' accept-and-infer-next-history
|
||||
bindkey '^W' kill-region
|
||||
bindkey '^I' complete-word
|
||||
# Fix weird sequence that rxvt produces
|
||||
bindkey -s '^[[Z' '\t'
|
||||
|
28
dotfiles/lib/zsh/spectrum.sh
Normal file
28
dotfiles/lib/zsh/spectrum.sh
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/zsh
|
||||
# A script to make using 256 colors in zsh less painful.
|
||||
# P.C. Shyamshankar <sykora@lucentbeing.com>
|
||||
# Copied from http://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
|
||||
|
||||
typeset -Ag FX FG BG
|
||||
|
||||
FX=(
|
||||
reset "%{[00m%}"
|
||||
bold "%{[01m%}" no-bold "%{[22m%}"
|
||||
italic "%{[03m%}" no-italic "%{[23m%}"
|
||||
underline "%{[04m%}" no-underline "%{[24m%}"
|
||||
blink "%{[05m%}" no-blink "%{[25m%}"
|
||||
reverse "%{[07m%}" no-reverse "%{[27m%}"
|
||||
)
|
||||
|
||||
for color in {000..255}; do
|
||||
FG[$color]="%{[38;5;${color}m%}"
|
||||
BG[$color]="%{[48;5;${color}m%}"
|
||||
done
|
||||
|
||||
# Show all 256 colors with color number
|
||||
function spectrum_ls() {
|
||||
for code in {000..255}; do
|
||||
print -P -- "$code: %{$FG[$code]Test%f%}"
|
||||
done
|
||||
}
|
||||
|
35
dotfiles/lib/zsh/term_support.sh
Normal file
35
dotfiles/lib/zsh/term_support.sh
Normal file
@ -0,0 +1,35 @@
|
||||
#usage: title short_tab_title looooooooooooooooooooooggggggg_windows_title
|
||||
#http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
|
||||
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||
function title {
|
||||
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
||||
return
|
||||
fi
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||
print -Pn "\e]2;$2:q\a" #set window name
|
||||
print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
|
||||
fi
|
||||
}
|
||||
|
||||
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
||||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
||||
|
||||
#Appears when you have the prompt
|
||||
function omz_termsupport_precmd {
|
||||
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
||||
}
|
||||
|
||||
#Appears at the beginning of (and during) of command execution
|
||||
function omz_termsupport_preexec {
|
||||
emulate -L zsh
|
||||
setopt extended_glob
|
||||
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
||||
title "$CMD" "%100>...>${2:gs/%/%%}%<<"
|
||||
}
|
||||
|
||||
autoload -U add-zsh-hook
|
||||
add-zsh-hook precmd omz_termsupport_precmd
|
||||
add-zsh-hook preexec omz_termsupport_preexec
|
2
dotfiles/zshrc
Normal file
2
dotfiles/zshrc
Normal file
@ -0,0 +1,2 @@
|
||||
source ~/.lib/shellrc.sh
|
||||
source ~/.lib/zsh.sh
|
@ -1 +0,0 @@
|
||||
Subproject commit ac9588ba3c8b361b11ce969a676a737298a2295f
|
@ -12,7 +12,7 @@ function osx() {
|
||||
echo "gcc not found."
|
||||
exit
|
||||
fi
|
||||
hash brew &>/dev/null && echo "brew found" || ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
|
||||
hash brew &>/dev/null && echo "brew found" || ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
|
||||
brew update
|
||||
brew install git
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user