From 8682ab61ad058de38566f80ff580cb5586df8406 Mon Sep 17 00:00:00 2001 From: Matt Fletcher Date: Thu, 14 Jan 2010 03:45:10 +0800 Subject: [PATCH 01/29] add fletcherm theme; a slightly modified copy of an old tonotdo theme --- themes/fletcherm.zsh-theme | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 themes/fletcherm.zsh-theme diff --git a/themes/fletcherm.zsh-theme b/themes/fletcherm.zsh-theme new file mode 100644 index 0000000..e961885 --- /dev/null +++ b/themes/fletcherm.zsh-theme @@ -0,0 +1,12 @@ +# Copied from old version of tonotdo's theme. LSCOLORS modified. +PROMPT='%{$fg_no_bold[cyan]%}%n%{$fg_no_bold[magenta]%}•%{$fg_no_bold[green]%}%3~$(git_prompt_info)%{$reset_color%}» ' +RPROMPT='[%*]' + +# git theming +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg_no_bold[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[blue]%})" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[yellow]%}⚡%{$fg_bold[blue]%})" + +export LSCOLORS="exfxcxdxbxegedabagacad" +export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:' From 0055b01bfa961d2cdf614e7361fb6eda53118c38 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sat, 27 Feb 2010 16:15:47 -0700 Subject: [PATCH 02/29] Initial pass at pesistant directory stack --- lib/dirspersist.zsh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/dirspersist.zsh diff --git a/lib/dirspersist.zsh b/lib/dirspersist.zsh new file mode 100644 index 0000000..a7c077a --- /dev/null +++ b/lib/dirspersist.zsh @@ -0,0 +1,19 @@ +#!/bin/zsh +# +# Make the dirstack more persistant +# +# Run dirpersiststore in ~/.zlogout + +dirpersiststore () { + dirs -p | sed 's/ /\\ /g;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore +} + +dirpersistrestore () { + if [ -f ~/.zdirstore ]; then + source ~/.zdirstore + fi +} + +DIRSTACKSIZE=10 +setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups +dirpersistrestore \ No newline at end of file From 751f34c9621fa08f909324a5367b0b4d8e2338e0 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Mon, 15 Mar 2010 20:34:26 -0600 Subject: [PATCH 03/29] Alias popd to remove deleted dirs from persistance --- lib/dirspersist.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/dirspersist.zsh b/lib/dirspersist.zsh index a7c077a..8364a87 100644 --- a/lib/dirspersist.zsh +++ b/lib/dirspersist.zsh @@ -16,4 +16,7 @@ dirpersistrestore () { DIRSTACKSIZE=10 setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups -dirpersistrestore \ No newline at end of file +dirpersistrestore + +# Make popd changes permanent without having to wait for logout +alias popd="popd;dirpersiststore" \ No newline at end of file From 5edeaf9e115da68a896a5edf4c004c271858c027 Mon Sep 17 00:00:00 2001 From: Tomas Kramar Date: Mon, 22 Mar 2010 21:44:15 +0100 Subject: [PATCH 04/29] Make Shift+Tab move backwards in the menu --- lib/key-bindings.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 87e47ba..8d22eb2 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -20,6 +20,7 @@ bindkey "^[[F" end-of-line bindkey "^[[4~" end-of-line bindkey ' ' magic-space # also do history expansion on space +bindkey '^[[Z' reverse-menu-complete # consider emacs keybindings: @@ -38,4 +39,4 @@ bindkey ' ' magic-space # also do history expansion on space #bindkey '^I' complete-word ## Fix weird sequence that rxvt produces #bindkey -s '^[[Z' '\t' -# \ No newline at end of file +# From 87920fb11177e37c6f16f441790605c762ce861d Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Fri, 2 Apr 2010 15:24:41 -0600 Subject: [PATCH 05/29] Escape &'s in path name. Need to find general function for escaping all shell metacharacters. --- lib/dirspersist.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/dirspersist.zsh b/lib/dirspersist.zsh index 8364a87..973107c 100644 --- a/lib/dirspersist.zsh +++ b/lib/dirspersist.zsh @@ -5,7 +5,8 @@ # Run dirpersiststore in ~/.zlogout dirpersiststore () { - dirs -p | sed 's/ /\\ /g;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore +# FIXME: need to escape all shell metacharacters, not just spaces! + dirs -p | sed 's/ /\\ /g;s/&/\\&/;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore } dirpersistrestore () { @@ -19,4 +20,4 @@ setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups dirpersistrestore # Make popd changes permanent without having to wait for logout -alias popd="popd;dirpersiststore" \ No newline at end of file +alias popd="popd;dirpersiststore" From faca005fe6682611273fd2769cd7a6d0a5c6706e Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Thu, 22 Apr 2010 11:26:08 -0600 Subject: [PATCH 06/29] Escape some metachars that trip up .zdirstore script --- lib/dirspersist.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/dirspersist.zsh b/lib/dirspersist.zsh index 973107c..d694c55 100644 --- a/lib/dirspersist.zsh +++ b/lib/dirspersist.zsh @@ -5,8 +5,7 @@ # Run dirpersiststore in ~/.zlogout dirpersiststore () { -# FIXME: need to escape all shell metacharacters, not just spaces! - dirs -p | sed 's/ /\\ /g;s/&/\\&/;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore + dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > ~/.zdirstore } dirpersistrestore () { From 5f62c6af832c72b96961f2075b4a4b0ae05d329d Mon Sep 17 00:00:00 2001 From: Alessandro Ghedini Date: Mon, 16 Aug 2010 21:47:21 +0200 Subject: [PATCH 07/29] add candy theme --- themes/candy.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/candy.zsh-theme diff --git a/themes/candy.zsh-theme b/themes/candy.zsh-theme new file mode 100644 index 0000000..bc125c5 --- /dev/null +++ b/themes/candy.zsh-theme @@ -0,0 +1,7 @@ +PROMPT=$'%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\ +%{$fg[blue]%}->%{$fg_bold[blue]%} %#%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 5137931254379e892bfe5b22da607686c1e7771a Mon Sep 17 00:00:00 2001 From: Josh Price Date: Tue, 17 Aug 2010 22:45:10 +1000 Subject: [PATCH 08/29] Added my own theme based on pat's --- themes/josh.zsh-theme | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 themes/josh.zsh-theme diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme new file mode 100644 index 0000000..9d59bd9 --- /dev/null +++ b/themes/josh.zsh-theme @@ -0,0 +1,43 @@ +grey='\e[0;90m' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$grey%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$grey%}) %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$grey%})" + +function pat_prompt { + (( spare_width = ${COLUMNS} )) + prompt=" " + + branch=$(current_branch) + ruby_version=$(rvm_prompt_info) + path_size=${#PWD} + branch_size=${#branch} + ruby_size=${#ruby_version} + machine_size=11 + + if [[ ${#branch} -eq 0 ]] + then (( ruby_size = ruby_size + 1 )) + else + (( branch_size = branch_size + 4 )) + if [[ -n $(git status -s 2> /dev/null) ]]; then + (( branch_size = branch_size + 2 )) + fi + fi + + (( spare_width = ${spare_width} - (${machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) )) + + while [ ${#prompt} -lt $spare_width ]; do + prompt=" $prompt" + done + + prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info)%{$reset_color%} $(git_prompt_info)" + + echo $prompt +} + +setopt prompt_subst + +PROMPT=' +%n@%m $(pat_prompt) +%(?,%{%F{green}%},%{%F{red}%})⚡%{$reset_color%} ' From b0b7915d9d65bd2d036d203c39dd6b364a784b9e Mon Sep 17 00:00:00 2001 From: Josh Price Date: Tue, 17 Aug 2010 23:22:26 +1000 Subject: [PATCH 09/29] Made the user_machine_size calculation generic. Pwned the function name. --- themes/josh.zsh-theme | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme index 9d59bd9..6bed1a7 100644 --- a/themes/josh.zsh-theme +++ b/themes/josh.zsh-theme @@ -5,7 +5,7 @@ ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY="%{$grey%}) %{$fg[yellow]%}✗%{$reset_color%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$grey%})" -function pat_prompt { +function josh_prompt { (( spare_width = ${COLUMNS} )) prompt=" " @@ -14,7 +14,7 @@ function pat_prompt { path_size=${#PWD} branch_size=${#branch} ruby_size=${#ruby_version} - machine_size=11 + user_machine_size=${#${(%):-%n@%m-}} if [[ ${#branch} -eq 0 ]] then (( ruby_size = ruby_size + 1 )) @@ -25,7 +25,7 @@ function pat_prompt { fi fi - (( spare_width = ${spare_width} - (${machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) )) + (( spare_width = ${spare_width} - (${user_machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) )) while [ ${#prompt} -lt $spare_width ]; do prompt=" $prompt" @@ -39,5 +39,5 @@ function pat_prompt { setopt prompt_subst PROMPT=' -%n@%m $(pat_prompt) +%n@%m $(josh_prompt) %(?,%{%F{green}%},%{%F{red}%})⚡%{$reset_color%} ' From 2f2a4a1372f9a6b6c8fd9cc13fbd242cd2172e07 Mon Sep 17 00:00:00 2001 From: Daniel Schauenberg Date: Mon, 9 Aug 2010 15:45:40 +0200 Subject: [PATCH 10/29] update brew plugin from homebrew contributions --- plugins/brew.plugin.zsh | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/plugins/brew.plugin.zsh b/plugins/brew.plugin.zsh index 91397bf..162eb64 100644 --- a/plugins/brew.plugin.zsh +++ b/plugins/brew.plugin.zsh @@ -1,6 +1,6 @@ #compdef brew -# copied from _fink +# imported from the latest homebrew contributions _brew_all_formulae() { formulae=(`brew search`) @@ -12,19 +12,25 @@ _brew_installed_formulae() { local -a _1st_arguments _1st_arguments=( + 'cat:display formula file for a formula' + 'cleanup:uninstall unused and old versions of packages' + 'create:create a new formula' + 'deps:list dependencies and dependants of a formula' + 'doctor:audits your installation for common issues' + 'edit:edit a formula' + 'home:visit the homepage of a formula or the brew project' + 'info:information about a formula' 'install:install a formula' + 'link:link a formula' + 'list:list files in a formula or not-installed formulae' + 'log:git commit log for a formula' + 'outdated:list formulas for which a newer version is available' + 'prune:remove dead links' 'remove:remove a formula' 'search:search for a formula (/regex/ or string)' - 'list:list files in a formula or not-installed formulae' - 'link:link a formula' 'unlink:unlink a formula' - 'home:visit the homepage of a formula or the brew project' - 'info:information about a formula' - 'prune:remove dead links' 'update:freshen up links' - 'log:git commit log for a formula' - 'create:create a new formula' - 'edit:edit a formula' + 'uses:show formulas which depend on a formula' ) local expl @@ -47,12 +53,12 @@ case "$words[1]" in _arguments \ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \ '1: :->forms' && return 0 - + if [[ "$state" == forms ]]; then _brew_installed_formulae _requested installed_formulae expl 'installed formulae' compadd -a installed_formulae fi ;; - install|home|log|info) + install|home|log|info|uses|cat|deps) _brew_all_formulae _wanted formulae expl 'all formulae' compadd -a formulae ;; remove|edit|xo) From 3205628a51608ab68d6e1db4908130df806edc20 Mon Sep 17 00:00:00 2001 From: Daniel Schauenberg Date: Sun, 8 Aug 2010 19:45:49 +0200 Subject: [PATCH 11/29] add simple mrtazz theme based on robbyrussell - simple theme - hostname and current folder on left prompt - git branch and working tree status on the right --- themes/mrtazz.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/mrtazz.zsh-theme diff --git a/themes/mrtazz.zsh-theme b/themes/mrtazz.zsh-theme new file mode 100644 index 0000000..214ba5a --- /dev/null +++ b/themes/mrtazz.zsh-theme @@ -0,0 +1,7 @@ +PROMPT='%{$fg_bold[red]%}%m%{$reset_color%}:%{$fg[cyan]%}%c%{$reset_color%}:%# ' +RPROMPT='%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}% ' + +ZSH_THEME_GIT_PROMPT_PREFIX="<%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%} %{$fg[yellow]%}✗%{$fg[green]%}>%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%}>" From d0eb0d9fbc846530fd3ec4812762ce18462c1e87 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Thu, 19 Aug 2010 08:04:18 -0700 Subject: [PATCH 12/29] Switching to /usr/bin/env zsh instead of /bin/zsh in the installer --- tools/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 004b252..6e3872b 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -22,7 +22,7 @@ echo "Copying your current PATH and adding it to the end of ~/.zshrc for you." echo "export PATH=$PATH" >> ~/.zshrc echo "Time to change your default shell to zsh!" -chsh -s /bin/zsh +chsh -s "/usr/bin/env zsh" echo ' __ __ ' echo ' ____ / /_ ____ ___ __ __ ____ _____/ /_ ' @@ -32,5 +32,5 @@ echo '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ ' echo ' /____/' echo "\n\n ....is now installed." -/bin/zsh +/usr/bin/env zsh source ~/.zshrc From 1d4098bd293285b7f008b9d76a4dfe7f1bbc1808 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 24 Aug 2010 11:08:20 -0700 Subject: [PATCH 13/29] Removing '.' alias as it is overwriting a bash/zsh feature. Closes #63 --- lib/aliases.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 80760a1..d2d3aed 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -3,7 +3,6 @@ alias pu='pushd' alias po='popd' # Basic directory operations -alias .='pwd' alias ...='cd ../..' alias -- -='cd -' From 4f72ce160736987fc6938bb7fd6ec19fb81cc92b Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 30 Aug 2010 14:59:23 -0400 Subject: [PATCH 14/29] Added the truly epic kennethreitz theme. --- themes/kennethreitz.zsh-theme | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 themes/kennethreitz.zsh-theme diff --git a/themes/kennethreitz.zsh-theme b/themes/kennethreitz.zsh-theme new file mode 100644 index 0000000..109be0c --- /dev/null +++ b/themes/kennethreitz.zsh-theme @@ -0,0 +1,13 @@ +local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + +PROMPT='%{$fg[green]%}%c \ +$(git_prompt_info)\ +%{$fg[red]%}%(!.#.»)%{$reset_color%} ' +PROMPT2='%{$fg[red]%}\ %{$reset_color%}' +RPS1='%{$fg[blue]%}%~%{$reset_color%} ${return_code} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}:: %{$fg[yellow]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$fg[yellow]%}" + From e26bfbcd23e698b66dbabafc5caf280234ce147c Mon Sep 17 00:00:00 2001 From: Vivek Prahlad Date: Fri, 10 Sep 2010 10:50:42 +0530 Subject: [PATCH 15/29] Adding a plugin with aliases for macports --- plugins/macports.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/macports.plugin.zsh diff --git a/plugins/macports.plugin.zsh b/plugins/macports.plugin.zsh new file mode 100644 index 0000000..94a5f5e --- /dev/null +++ b/plugins/macports.plugin.zsh @@ -0,0 +1,6 @@ +alias pc="sudo port clean --all installed" +alias pi="sudo port install $1" +alias psu="sudo port selfupdate" +alias puni="sudo port uninstall inactive" +alias puo="sudo port upgrade outdated" +alias pup="psu && puo" From ce1d94528eda5a8b3fe18aa666294ff003ead9d9 Mon Sep 17 00:00:00 2001 From: Vivek Prahlad Date: Fri, 10 Sep 2010 10:55:17 +0530 Subject: [PATCH 16/29] Adding comments --- plugins/macports.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/macports.plugin.zsh b/plugins/macports.plugin.zsh index 94a5f5e..9564829 100644 --- a/plugins/macports.plugin.zsh +++ b/plugins/macports.plugin.zsh @@ -1,3 +1,4 @@ +#Aliases alias pc="sudo port clean --all installed" alias pi="sudo port install $1" alias psu="sudo port selfupdate" From daf855f2ed88bdbdc14e2bd63929966e93924db6 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 19 Sep 2010 19:39:51 -0600 Subject: [PATCH 17/29] Move dirpersist to plugin --- lib/dirspersist.zsh => plugins/dirpersist.plugin.zsh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lib/dirspersist.zsh => plugins/dirpersist.plugin.zsh (100%) diff --git a/lib/dirspersist.zsh b/plugins/dirpersist.plugin.zsh similarity index 100% rename from lib/dirspersist.zsh rename to plugins/dirpersist.plugin.zsh From e3e284016c8de8889150fa6f59f78bff93b14e83 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 19 Sep 2010 19:43:49 -0600 Subject: [PATCH 18/29] Added installation function --- plugins/dirpersist.plugin.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/dirpersist.plugin.zsh b/plugins/dirpersist.plugin.zsh index d694c55..48ca94d 100644 --- a/plugins/dirpersist.plugin.zsh +++ b/plugins/dirpersist.plugin.zsh @@ -4,6 +4,17 @@ # # Run dirpersiststore in ~/.zlogout +dirpersistinstall () { + if grep -qL 'dirpersiststore' ~/.zlogout; then + else + if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then + echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout + else + echo "If you don't want this message to appear, remove dirspersist from \$plugins" + fi + fi +} + dirpersiststore () { dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > ~/.zdirstore } @@ -16,6 +27,8 @@ dirpersistrestore () { DIRSTACKSIZE=10 setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups + +dirpersistinstall dirpersistrestore # Make popd changes permanent without having to wait for logout From 515315e46773f160e6660e41c1e7a0c66186e785 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 19 Sep 2010 22:39:11 -0600 Subject: [PATCH 19/29] Added install instructions --- plugins/dirpersist.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/dirpersist.plugin.zsh b/plugins/dirpersist.plugin.zsh index 48ca94d..4decd8b 100644 --- a/plugins/dirpersist.plugin.zsh +++ b/plugins/dirpersist.plugin.zsh @@ -2,7 +2,8 @@ # # Make the dirstack more persistant # -# Run dirpersiststore in ~/.zlogout +# Add dirpersist to $plugins in ~/.zshrc to load +# dirpersistinstall () { if grep -qL 'dirpersiststore' ~/.zlogout; then From 5539b3c72b4c38e382a89c633defd120901e3f47 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 19 Sep 2010 22:40:47 -0600 Subject: [PATCH 20/29] Change zdirstore to variable --- plugins/dirpersist.plugin.zsh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/dirpersist.plugin.zsh b/plugins/dirpersist.plugin.zsh index 4decd8b..5b3fdfb 100644 --- a/plugins/dirpersist.plugin.zsh +++ b/plugins/dirpersist.plugin.zsh @@ -5,6 +5,9 @@ # Add dirpersist to $plugins in ~/.zshrc to load # +# $zdirstore is the file used to persist the stack +zdirstore=~/.zdirstore + dirpersistinstall () { if grep -qL 'dirpersiststore' ~/.zlogout; then else @@ -17,12 +20,12 @@ dirpersistinstall () { } dirpersiststore () { - dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > ~/.zdirstore + dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > $zdirstore } dirpersistrestore () { - if [ -f ~/.zdirstore ]; then - source ~/.zdirstore + if [ -f $zdirstore ]; then + source $zdirstore fi } From 9d9fcaf232c37d28784a452b43e0a7e8ce787319 Mon Sep 17 00:00:00 2001 From: gwjo Date: Fri, 24 Sep 2010 20:46:52 -0400 Subject: [PATCH 21/29] ssh-agent module Implement a simple module that automatically launches the ssh-agent when you login and adds your default key. Useful for anyone that does remote work and thus doesn't have access to a keychain tool. --- plugins/ssh-agent.plugin.zsh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 plugins/ssh-agent.plugin.zsh diff --git a/plugins/ssh-agent.plugin.zsh b/plugins/ssh-agent.plugin.zsh new file mode 100644 index 0000000..fa8c45e --- /dev/null +++ b/plugins/ssh-agent.plugin.zsh @@ -0,0 +1,24 @@ +# Based on code from Joseph M. Reagle +# http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html + +local SSH_ENV=$HOME/.ssh/environment + +function start_agent { + /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} + chmod 600 ${SSH_ENV} + . ${SSH_ENV} > /dev/null + /usr/bin/ssh-add; +} + +# Source SSH settings, if applicable + +if [ -f "${SSH_ENV}" ]; then + . ${SSH_ENV} > /dev/null + #ps ${SSH_AGENT_PID} doesn't work under cywgin + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } +else + start_agent; +fi + From 8dc552cfb748b41aac53d4ec7879859518a2d989 Mon Sep 17 00:00:00 2001 From: Jake Bell Date: Sat, 25 Sep 2010 00:48:19 -0500 Subject: [PATCH 22/29] Added theunraveler theme. --- themes/theunraveler.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 themes/theunraveler.zsh-theme diff --git a/themes/theunraveler.zsh-theme b/themes/theunraveler.zsh-theme new file mode 100644 index 0000000..4eec8e8 --- /dev/null +++ b/themes/theunraveler.zsh-theme @@ -0,0 +1,6 @@ +# Comment + +ZSH_THEME_GIT_PROMPT_PREFIX=' (git:' +ZSH_THEME_GIT_PROMPT_SUFFIX=')' + +PROMPT='%{$fg[magenta]%}[%c]$(git_prompt_info) $ %{$reset_color%}' \ No newline at end of file From 18568a23105bfece55670de14b1d43bf6320dc2b Mon Sep 17 00:00:00 2001 From: Tomas Kramar Date: Sun, 26 Sep 2010 16:05:53 +0200 Subject: [PATCH 23/29] unset config_file is useless --- oh-my-zsh.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index bb45c71..c46aea7 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -21,5 +21,3 @@ then else /usr/bin/env zsh $ZSH/tools/check_for_upgrade.sh fi - -unset config_file \ No newline at end of file From 3570f0d243eddfef3b34e4b34363f8ff8245867d Mon Sep 17 00:00:00 2001 From: Tomas Kramar Date: Sun, 26 Sep 2010 16:03:44 +0200 Subject: [PATCH 24/29] Do not complete named-directories --- lib/completion.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index cba9017..52cc5b5 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -1,4 +1,4 @@ -## fixme - the load process here seems a bit bizarre +# fixme - the load process here seems a bit bizarre unsetopt menu_complete # do not autoselect the first completion entry unsetopt flowcontrol @@ -30,6 +30,11 @@ 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=(.) + + # Load known hosts file for auto-completion with ssh and scp commands if [ -f ~/.ssh/known_hosts ]; then zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts ) From 572a66395511814a1b973ba13c4f7cf3eb65ee7c Mon Sep 17 00:00:00 2001 From: Tomas Kramar Date: Sun, 26 Sep 2010 22:25:31 +0200 Subject: [PATCH 25/29] Add vi-mode plugin for vi-like editing --- plugins/vi-mode.plugin.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/vi-mode.plugin.zsh diff --git a/plugins/vi-mode.plugin.zsh b/plugins/vi-mode.plugin.zsh new file mode 100644 index 0000000..c47ab72 --- /dev/null +++ b/plugins/vi-mode.plugin.zsh @@ -0,0 +1,22 @@ +function zle-line-init zle-keymap-select { + zle reset-prompt +} + +zle -N zle-line-init +zle -N zle-keymap-select + +bindkey -v + +# if mode indicator wasn't setup by theme, define default +if [[ "$MODE_INDICATOR" == "" ]]; then + MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" +fi + +function vi_mode_prompt_info() { + echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" +} + +# define right prompt, if it wasn't defined by a theme +if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then + RPS1='$(vi_mode_prompt_info)' +fi From 800cfb5c41797110719569ddff7da08369d80a66 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Thu, 30 Sep 2010 20:54:45 -0700 Subject: [PATCH 26/29] Tidying up the spacing to bring in line with coding standards --- plugins/ssh-agent.plugin.zsh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/plugins/ssh-agent.plugin.zsh b/plugins/ssh-agent.plugin.zsh index fa8c45e..ce0d645 100644 --- a/plugins/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent.plugin.zsh @@ -4,21 +4,20 @@ local SSH_ENV=$HOME/.ssh/environment function start_agent { - /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} - chmod 600 ${SSH_ENV} - . ${SSH_ENV} > /dev/null - /usr/bin/ssh-add; + /usr/bin/env ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} + chmod 600 ${SSH_ENV} + . ${SSH_ENV} > /dev/null + /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then - . ${SSH_ENV} > /dev/null - #ps ${SSH_AGENT_PID} doesn't work under cywgin - ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { - start_agent; - } + . ${SSH_ENV} > /dev/null + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } else - start_agent; + start_agent; fi From 36bc60455b77fcad45ec628ca1e7f360692699bf Mon Sep 17 00:00:00 2001 From: Trevor Creech Date: Mon, 20 Sep 2010 17:31:17 -0700 Subject: [PATCH 27/29] Match xterm-color, the default OS X terminal --- lib/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index fcbe994..561586c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -5,7 +5,7 @@ function title { print -nR $'\033k'$1$'\033'\\\ print -nR $'\033]0;'$2$'\a' - elif [[ $TERM == "xterm" || $TERM == "rxvt" ]]; then + elif [[ $TERM =~ "^xterm" || $TERM == "rxvt" ]]; then # Use this one instead for XTerms: print -nR $'\033]0;'$*$'\a' fi From f31b3728db40ca894bf190f451b4c505d6021569 Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Tue, 21 Sep 2010 12:07:02 -0600 Subject: [PATCH 28/29] Removed unportable (and unnecessary) grep flags --- plugins/dirpersist.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/dirpersist.plugin.zsh b/plugins/dirpersist.plugin.zsh index 5b3fdfb..b5e825b 100644 --- a/plugins/dirpersist.plugin.zsh +++ b/plugins/dirpersist.plugin.zsh @@ -9,7 +9,7 @@ zdirstore=~/.zdirstore dirpersistinstall () { - if grep -qL 'dirpersiststore' ~/.zlogout; then + if grep 'dirpersiststore' ~/.zlogout > /dev/null; then else if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout @@ -19,6 +19,7 @@ dirpersistinstall () { fi } +# FIXME solaris doesn't support tail -r dirpersiststore () { dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > $zdirstore } From 6fe935d59e08982fcb7652fe10cce8c3dec60abb Mon Sep 17 00:00:00 2001 From: Matt Cable Date: Sun, 26 Sep 2010 21:30:57 -0600 Subject: [PATCH 29/29] Portable perl dirpersiststore because 'tail -r' doesn't work everywhere. --- plugins/dirpersist.plugin.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/dirpersist.plugin.zsh b/plugins/dirpersist.plugin.zsh index b5e825b..6a2b289 100644 --- a/plugins/dirpersist.plugin.zsh +++ b/plugins/dirpersist.plugin.zsh @@ -19,9 +19,8 @@ dirpersistinstall () { fi } -# FIXME solaris doesn't support tail -r dirpersiststore () { - dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > $zdirstore + dirs -p | perl -e 'foreach (reverse ) {chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"}' > $zdirstore } dirpersistrestore () {