summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Russell <robby@planetargon.com>2009-08-28 11:14:17 -0700
committerRobby Russell <robby@planetargon.com>2009-08-28 11:14:17 -0700
commit5da20b9dddb1f7a9110675ded5df59c4c3ed1b83 (patch)
tree142b4940f34ce07495c407692a0c299c18df7461
parente20401e04e057a39c228dbb99dda68ec7fa4235a (diff)
downloadzsh-5da20b9dddb1f7a9110675ded5df59c4c3ed1b83.tar.gz
zsh-5da20b9dddb1f7a9110675ded5df59c4c3ed1b83.tar.bz2
zsh-5da20b9dddb1f7a9110675ded5df59c4c3ed1b83.zip
Importing initial files after reorganizing stuff.
-rw-r--r--README.textile8
-rw-r--r--aliases.zsh44
-rw-r--r--colors.zsh4
-rw-r--r--completion.zsh27
-rw-r--r--functions.zsh26
-rw-r--r--git.zsh19
-rw-r--r--grep.zsh6
-rw-r--r--history.zsh15
-rw-r--r--projects.zsh-example5
-rw-r--r--prompt.zsh29
-rw-r--r--rake_completion.zsh42
-rw-r--r--zshrc34
12 files changed, 259 insertions, 0 deletions
diff --git a/README.textile b/README.textile
new file mode 100644
index 000000000..740070d8c
--- /dev/null
+++ b/README.textile
@@ -0,0 +1,8 @@
+h2. Setup
+
+# Clone the repository to ~/zsh
+# Symlink the zsh config with: @ln -s ~/zsh/zshrc .zshrc@
+# Reload zsh (open a new terminal)
+
+
+
diff --git a/aliases.zsh b/aliases.zsh
new file mode 100644
index 000000000..2319823f1
--- /dev/null
+++ b/aliases.zsh
@@ -0,0 +1,44 @@
+alias c='cd'
+alias pu='pushd'
+alias po='popd'
+alias sc='ruby script/console'
+alias ss='ruby script/server'
+
+alias mr='mate CHANGELOG app config db lib public script spec test'
+alias .='pwd'
+alias ...='cd ../..'
+alias ....='cd ../../..'
+alias .....='cd ../../../..'
+alias ......='cd ../../../../..'
+alias .......='cd ../../../../../..'
+
+alias _='sudo'
+alias ss='setsid'
+
+alias g='grep -in'
+
+alias s='svn'
+alias e='mate'
+
+alias history='fc -l 1'
+
+# Git aliases
+
+alias utb='tar jxvf'
+alias utz='tar zxvf'
+
+alias ls='ls -GF'
+alias ll='ls -al'
+
+alias sgem='sudo gem'
+
+alias rfind='find . -name *.rb | xargs grep -n'
+
+alias xenon='ssh rrussell@xenon.planetargon.com'
+
+alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
+
+bindkey '\ew' kill-region
+
+bindkey -s '\el' "ls\n"
+bindkey -s '\e.' "..\n" \ No newline at end of file
diff --git a/colors.zsh b/colors.zsh
new file mode 100644
index 000000000..b2b08f929
--- /dev/null
+++ b/colors.zsh
@@ -0,0 +1,4 @@
+autoload colors; colors;
+
+unset LSCOLORS
+export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
diff --git a/completion.zsh b/completion.zsh
new file mode 100644
index 000000000..e0edc763f
--- /dev/null
+++ b/completion.zsh
@@ -0,0 +1,27 @@
+setopt noautomenu
+setopt COMPLETE_IN_WORD
+setopt ALWAYS_TO_END
+
+unsetopt flowcontrol
+
+WORDCHARS=''
+
+autoload -U compinit
+compinit
+
+zmodload -i zsh/complist
+
+zstyle ':completion:*' list-colors ''
+zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
+
+unsetopt MENU_COMPLETE
+setopt AUTO_MENU
+
+bindkey -M menuselect '^o' accept-and-infer-next-history
+
+zstyle ':completion:*:*:*:*:*' menu yes select
+# zstyle ':completion:*:*:*:*:processes' force-list always
+
+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"
+zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
diff --git a/functions.zsh b/functions.zsh
new file mode 100644
index 000000000..5c349e80c
--- /dev/null
+++ b/functions.zsh
@@ -0,0 +1,26 @@
+function title {
+ if [[ $TERM == "screen" ]]; then
+ # Use these two for GNU Screen:
+ print -nR $'\033k'$1$'\033'\\\
+
+ print -nR $'\033]0;'$2$'\a'
+ elif [[ $TERM == "xterm" || $TERM == "rxvt" ]]; then
+ # Use this one instead for XTerms:
+ print -nR $'\033]0;'$*$'\a'
+ fi
+}
+
+function precmd {
+ title zsh "$PWD"
+}
+
+function preexec {
+ emulate -L zsh
+ local -a cmd; cmd=(${(z)1})
+ title $cmd[1]:t "$cmd[2,-1]"
+}
+
+
+function remote_console() {
+ /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"
+} \ No newline at end of file
diff --git a/git.zsh b/git.zsh
new file mode 100644
index 000000000..944096332
--- /dev/null
+++ b/git.zsh
@@ -0,0 +1,19 @@
+# get the name of the branch we are on
+function git_prompt_info() {
+ ref=$(git symbolic-ref HEAD 2> /dev/null) || return
+ branch=${ref#refs/heads/}
+
+ if [[ -d .git ]]; then
+ CURRENT_BRANCH="%{$fg[red]%}git:(%{$fg[green]${branch}%{$fg[red])"
+ else
+ CURRENT_BRANCH=''
+ fi
+
+
+ #echo "%{$fg[red]%}git:(%{$fg[green]$CURRENT_BRANCH%{$fg[red])"
+ echo $CURRENT_BRANCH
+}
+
+parse_git_dirty () {
+ [[ $(git status | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "%{$fg[white] ♻ "
+}
diff --git a/grep.zsh b/grep.zsh
new file mode 100644
index 000000000..93c4270b6
--- /dev/null
+++ b/grep.zsh
@@ -0,0 +1,6 @@
+#
+# Color grep results
+# Examples: http://rubyurl.com/ZXv
+#
+export GREP_OPTIONS='--color=auto'
+export GREP_COLOR='1;32' \ No newline at end of file
diff --git a/history.zsh b/history.zsh
new file mode 100644
index 000000000..a093aa27c
--- /dev/null
+++ b/history.zsh
@@ -0,0 +1,15 @@
+# History stuff.
+setopt HIST_VERIFY
+setopt INC_APPEND_HISTORY
+setopt SHARE_HISTORY
+setopt EXTENDED_HISTORY
+setopt HIST_IGNORE_DUPS
+
+## Command history configuration
+#
+HISTFILE=$ZSH/log/.zsh_history
+HISTSIZE=2500
+SAVEHIST=2500
+setopt hist_ignore_dups # ignore duplication command history list
+setopt share_history # share command history data
+
diff --git a/projects.zsh-example b/projects.zsh-example
new file mode 100644
index 000000000..28ffcae25
--- /dev/null
+++ b/projects.zsh-example
@@ -0,0 +1,5 @@
+# Add yourself some shortcuts to projects you often work on
+# Example:
+#
+# brainstormr=/Users/robbyrussell/Projects/development/planetargon/brainstormr
+# \ No newline at end of file
diff --git a/prompt.zsh b/prompt.zsh
new file mode 100644
index 000000000..a36e97f8e
--- /dev/null
+++ b/prompt.zsh
@@ -0,0 +1,29 @@
+bindkey -e
+
+# Directory stuff.
+setopt AUTO_NAME_DIRS
+
+# Speed stuff.
+
+#setopt NO_BEEP
+setopt AUTO_CD
+setopt MULTIOS
+setopt CDABLEVARS
+
+bindkey -e
+
+if [[ x$WINDOW != x ]]
+then
+ SCREEN_NO="%B$WINDOW%b "
+else
+ SCREEN_NO=""
+fi
+
+PS1="%n@%m:%~%# "
+
+# Setup the prompt with pretty colors
+setopt prompt_subst
+
+export LSCOLORS="Gxfxcxdxbxegedabagacad"
+
+PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
diff --git a/rake_completion.zsh b/rake_completion.zsh
new file mode 100644
index 000000000..a94b48896
--- /dev/null
+++ b/rake_completion.zsh
@@ -0,0 +1,42 @@
+_rake_does_task_list_need_generating () {
+ if [ ! -f .rake_tasks ]; then return 0;
+ else
+ accurate=$(stat -f%m .rake_tasks)
+ changed=$(stat -f%m Rakefile)
+ return $(expr $accurate '>=' $changed)
+ fi
+}
+
+_rake () {
+ if [ -f Rakefile ]; then
+ if _rake_does_task_list_need_generating; then
+ echo "\nGenerating .rake_tasks..." > /dev/stderr
+ rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
+ fi
+ compadd `cat .rake_tasks`
+ fi
+}
+
+compdef _rake rake
+
+function _cap_does_task_list_need_generating () {
+ if [ ! -f .cap_tasks ]; then return 0;
+ else
+ accurate=$(stat -f%m .cap_tasks)
+ changed=$(stat -f%m config/deploy.rb)
+ return $(expr $accurate '>=' $changed)
+ fi
+}
+
+function _cap () {
+ if [ -f config/deploy.rb ]; then
+ if _cap_does_task_list_need_generating; then
+ echo "\nGenerating .cap_tasks..." > /dev/stderr
+ cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D'
+> .cap_tasks
+ fi
+ compadd `cat .cap_tasks`
+ fi
+}
+
+compdef _cap cap
diff --git a/zshrc b/zshrc
new file mode 100644
index 000000000..e2fd0fc5a
--- /dev/null
+++ b/zshrc
@@ -0,0 +1,34 @@
+export EDITOR=/opt/local/bin/joe
+export PAGER=less
+export ZSH=$HOME/zsh
+export LC_CTYPE=en_US.UTF-8
+
+# TODO: Refactor this sometimes soon...
+source $ZSH/colors.zsh
+source $ZSH/aliases.zsh
+source $ZSH/completion.zsh
+source $ZSH/rake_completion.zsh
+source $ZSH/functions.zsh
+source $ZSH/git.zsh
+source $ZSH/history.zsh
+source $ZSH/grep.zsh
+source $ZSH/prompt.zsh
+
+# Uncomment if you have a projects.zsh file
+# source $ZSH/projects.zsh
+
+# Directory stuff.
+
+setopt AUTO_NAME_DIRS
+
+# Speed stuff.
+
+#setopt NO_BEEP
+setopt AUTO_CD
+setopt MULTIOS
+setopt CDABLEVARS
+
+# Customize to your needs...
+export PATH=~/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/sbin:/opt/local/lib/postgresql83/bin
+
+